考虑以下关联:
<class name="Person">
<id name="id" column="personId">
<generator class="native"/>
</id>
<set name="addresses" table="PersonAddress" lazy="false">
<key column="personId"/>
<many-to-many column="addressId" class="Address"/>
</set>
</class>
<class name="Address">
<id name="id" column="addressId">
<generator class="native"/>
</id>
</class>
现在,如果我想指定fetch = join|select|subselect
属性,我在哪里指定它? <set>
元素或<many-to-many>
元素?
此外,生成的查询会有什么不同吗?
答案 0 :(得分:0)
您已设置lazy="false"
。这相当于FetchType.EAGER
。所以你不需要再次使用FetchType
。在注释的情况下使用FecthType
并且您正在使用基于xml的配置。
根据您编辑的问题,由于您需要fetchmode
,因此您可以通过向fetch
set
属性来定义该问题
<set name="addresses" table="PersonAddress" lazy="false" fetch="select">
您的fetchMode确定将由hibernate生成的查询类型。
给出了一个很好的解释here