2011-02-05 6 views
1

@Whereによって提供される機能を使用して、ステータスがACTIVEのアイテムのみにコレクションを制限したいと考えています。 しかし、xmlだけのアノテーションは使用できません。したがって、私はxmlで@Where同等のものを探しますが、何も見つかりませんでした。HIbernate - コレクションを制限するためのXML構成と同等のもの

例(I要素のようなものが必要「」)もちろん

<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には書かれていませんが、この "where"属性に関してはhereと書かれていますが、私はそれがあなたが探しているものだと確信しています。

+0

。 "super-quick"と関連する回答をありがとう。 –

0

あなたは簡単にこの例のように、タグ内にwhere句を追加することができます。

私が必要とする正確に何だ
<bag name="subjects" inverse="true" cascade="save-update" where="flag_visible='S'" > 
関連する問題