使用NH映射字典。声明如下:
<hibernate-mapping ...
<map
name="CostsByRole"
table="JobAccountingSnapshotCosts"
lazy="false"
fetch="join"
access="nosetter.camelcase-underscore">
<key column="SnapshotId" />
<index column="RoleCode" type="String" />
<element column="Amount" type="Decimal" />
</map>
</hibernate-mapping>
我希望生成一个SQL查询,但我得到两个:选择实际对象,然后选择字典内容。
有什么想法吗?
答案 0 :(得分:6)
HQL查询不考虑映射中为fetch设置的值。您需要在每个HQL查询中专门指定它们。它应该是设计的。 fetch属性值仅由Criteria查询和Load / Get使用。
答案 1 :(得分:1)
假设提交时不是拼写错误,问题很可能是映射中的join="fetch"
部分。它应该是fetch="join"
,因为fetch
的默认值是“select”,这会产生顺序选择问题。