2013-05-16 29 views
-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>元素?

另外,生成的查詢會有什麼區別嗎?

回答

0

您已經設置了lazy="false"。這相當於FetchType.EAGER。所以你不需要再使用FetchType。在註釋的情況下使用FecthType,並且您使用的是基於xml的配置。


按照您編輯的問題,因爲你需要fetchmode,您可以通過添加fetch屬性您set

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

你fetchMode定義決定將由被生成的查詢的類型冬眠。

一個很好的解釋,給出here

+0

對不起,我說的是'取=加盟|選| subselect'屬性。更新我的問題。 – Vrushank

+0

我瞭解fetchMode決定什麼。我問的是,如果屬性設置在''(或者任何關聯標籤)而不是''標籤中,生成的查詢會不同? – Vrushank

相關問題