2011-02-05 4 views
1

@Where에서 제공하는 기능을 사용하여 ACTIVE 상태의 항목 만 수집하도록 제한하고 싶습니다. 그러나 xml 만 주석을 사용할 수 없습니다. 따라서 나는 XML에서 @Where를 찾는다. 그러나 나는 아무것도 찾을 수 없다.HIbernate - @ Restricting Collections에 대한 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에 문서화되어 있지 않지만,이 "where"속성에 관해서는 here으로 쓰여져있다. 나는 그것이 당신이 찾고있는 것이라고 확신한다.

+0

. "super-quick"및 관련 답변을 해주셔서 대단히 감사합니다. –

0

쉽게 예와 같이 태그에 WHERE 절을 추가 할 수 있습니다

내가 필요 정확히 무엇
<bag name="subjects" inverse="true" cascade="save-update" where="flag_visible='S'" > 
관련 문제