2011-02-05 32 views
1

我想使用@Where提供的功能將集合僅限制爲具有狀態ACTIVE的項目。 但是,我不能僅使用註解xml。因此我在xml中尋找@Where等價物,但我找不到任何東西。HIbernate - @用於限制集合的XML配置中的等效項

實例(我需要這樣的東西元素「其中」)

<hibernate-mapping> 
<class name="Teacher" table="teacher" > 
    ... 

    <bag name="subjects" inverse="true" cascade="save-update"> 
     <key> 
      <column name="id_policy" /> 
     </key> 
     <one-to-many class="Subject" /> 
     <where>status = 'a'</where> 
    </bag> 

    .... 
</class> 
</hibernate-mapping> 

當然,我可以使用自定義集合裝載機,但這對於這樣簡單的任務相當難看。 過濾器是一個更合適的選項,但它必須顯式啓用Hibernate會話,我只需要這個「where」子句總是應用。

任何想法?

回答

5

hibernate mapping DTD在類元素和所有集合元素(set,bag等)上提及了可選的where屬性。它沒有記錄在DTD中,但給了here關於這個「where」屬性的內容,我很肯定這是你要找的。

+0

這正是我需要的。非常感謝你的「超快」和相關的迴應:)。 – 2011-02-05 14:23:42

0

,你可以輕鬆地添加在where子句中的標籤,像這樣的例子:

<bag name="subjects" inverse="true" cascade="save-update" where="flag_visible='S'" >