2017-11-18 114 views
2

我有一个使用Hibernate检索后端对象的Java Web应用程序。我的Hibernate Criteria.list()不断返回具有空ID的现有数据库对象

对于一个特定的类,我始终以各种方式获得正确的结果 - 除了ID为空。

我知道我的设置基本上是正确的 - 我能够查询包含ID的所有对象的许多其他对象 - 这只是一个我不断收到空ID的类。

这是我的代码。我知道没有什么可以看到的 - 这是完全相同的代码行,给我的结果很好,除了一个以外,我的所有课程。只是想知道,如果有人有任何想法,为什么一个班可以给你带空ID的结果......?

Criteria searchCriteria = buildQBECriteria(exampleObj, orderings,     
          startIndex, maxQuantity, matchMode, 
          criteria, false, session); 
List ret = searchCriteria.list(); 

每当exampleObj只是一个特定的类 - 结果都很好,包括ID。

每当exampleObj是一个特定的类 - 它将以各种方式返回正确的结果,除了ID全为空。

谢谢! 添

+0

@Id@GeneratedValue(strategy = GenerationType.IDENTITY)

注释id字段通常当我有一个空号,这意味着我没有与托管实体打交道 – brt

+0

谢谢。我想你很可能会做些什么。我熟悉实体管理器的概念 - 但我也检查了我可能想到的所有东西 - 包括确保它在所有以下文件中:applicationContext-hibernate-dao-snapshot.xml,applicationContext-hibernate- dao.xml,applicationContext-hibernate-snapshot.xml,applicationContext-hibernate.xml,applicationContext-hibernate.xml –

+0

我应该提到的其他东西 - 当我执行快照查询时,我只获取空ID。当我不做快照时身份证会正常工作。 –

回答

0

如果它仅仅是一个类,你记得如果不使用注解,也许<id name="id" column="id" type="java.lang.String" unsaved-value="null">

相关问题