1
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を返しています。CrComponentRelDependencycrComponentDependencyDtlsの間に1対1の関係を定義しました。

4

1 に答える 1

1

HQLがすべての結合を行うため、テーブルを明示的に結合しないでください。これを試して:

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

HQLから不要な修飾と角かっこが削除されていることにも注意してください。

于 2012-04-06T13:30:25.170 に答える