-1

考虑以下关联:

<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>元素?

另外,生成的查询会有什么不同吗?

4

1 回答 1

0

你已经设置好了lazy="false"。这相当于FetchType.EAGER。所以你不需要FetchType再次使用。FecthType在注释的情况下使用,并且您正在使用基于 xml 的配置。


根据您编辑的问题,既然您需要fetchmode,您可以通过向fetch您的set

<set name="addresses" table="PersonAddress" lazy="false" fetch="select">

您的 fetchMode 确定将由 hibernate 生成的查询类型。

这里给出了一个很好的解释

于 2013-05-16T08:46:23.813 回答