我在EclipseLink上遇到了一些麻烦。我的程序必须与数据库(代表建筑物)进行交互。我编写了一个小输入测试模式,可以通过控制台手动插入内容。
我的问题:如果我尝试检索以前通过EclipseLink本身插入的实体(通过commit()),则正常的getByID操作就可以正常工作,但是在尝试选择通过SQL脚本手动插入的行时抛出NoResultException(构建- >很多房间->脚本)。
这个(省略)工作正常:
main() {
MyRoom r = new MyRoom();
r.setID("floor1-roomnr4");
em.commit(r); //entity manager
DAO.getRoomByID("floor1-roomnr4"); // works
}
生成脚本+简单地将getRoomByID()组合在一起会引发异常。
如果我在SQL Developer中尝试它,则将得到我想要的确切结果,该结果只是抛出了NoResultException。我也只会在输入模式下遇到此问题,否则选择生成的行也可以。
EclipseLink是否具有某些我不知道的高速缓存机制会导致某些问题?
最佳答案
您确定EclipseLink和SQL Developer已连接到同一数据库吗?请验证两者的连接信息。生成脚本是否使用“ commit”命令提交更改?
关于java - EclipseLink无法检索手动插入的实体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6517924/