2011-05-22 47 views
0

你好 我有這樣的映射:一個一對多的NHibernate

<class entity-name="Person"> 
    <id name="id" type="long" column="ID"> 
    <generator class="sequence"/> 
</id>  
<property name="FirstName" column="FIRST_NAME" type="string"/> 
<property name="LastName" column="LAST_NAME" type="string"/> 
<bag name="Addresses" inverse="true" lazy="false"   cascade="all">   <key column="Person_ID"/>   
<one-to-many class="Address"/>  </bag> 

<class entity-name="Address"> 
    <id name="id" type="long" column="ID"> 
    <generator class="sequence"/> 
</id>  
<property name="City" column="City" type="string"/> 
<property name="Country" column="Country" type="string"/> 
<property name="PersonId" column="Person_ID" type="long"/> 
</class> 

我需要獲取該住在巴黎的所有人員。爲此,我使用查詢如 從Person p內連接選擇p地址a對p.Id = a.PersonId其中a.City就像'Paris' 而且它是O.k. 但Nhbernate執行另外一個查詢,從地址選擇,其中a.PersonId在 (即住在巴黎的人都IDS),但它是不必要的,山上的NHibernate可以從加入地址的所有字段(第一查詢)

我可以阻止運行第二個查詢並從第一個查詢中獲取所有需要的信息嗎?

回答