我在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/

10-11 20:39