这个HQL有什么问题? “返回Null值以在连接查询中选择实体”

时间:2012-04-06 10:57:29

标签: hibernate null

session.createQuery("select ccrd.createdDate , s1 "
+  "from  CrComponentRelDependency ccrd "   
+  "left outer join ccrd.crComponentDependencyDtls s1 "   
+  "where ccrd.crComponent.componentSeq= :COMPONENT_SEQ " 
+  "and (ccrd.referencedComponentVer IS NULL) "
 .setParameter("COMPONENT_SEQ", componentId);

此查询为 ccrd.createdDate 提供了有效值,但它为 s1 实体返回NULL。 我已经在 CrComponentRelDependency &之间定义了一对一的关系。的 crComponentDependencyDtls

1 个答案:

答案 0 :(得分:1)

HQL为您完成所有加入,因此显式连接表。试试这个:

session.createQuery("select createdDate, crComponentDependencyDtls "
+  "from CrComponentRelDependency ccrd "   
+  "where crComponent.componentSeq = :COMPONENT_SEQ " 
+  "and referencedComponentVer IS NULL")
 .setParameter("COMPONENT_SEQ", componentId);

另请注意,从HQL中删除不必要的资格和括号。