2012-01-17 4 views
0

도메인 모델에는 Status enum과 Active 또는 Deleted 값을 갖는 많은 엔티티가있다.Hibernate의 디폴트 자식 컬렉션과 기준 전략들

내가 처리하는 방법에 권장되는 접근 방식에 문서와 조언을 찾고 있어요 :

  1. Status 열거이 엔티티의 컬렉션을 가져 오는 경우, 기본적으로 Deleted에 설정 한 값 가진 사람을 제외하려면

  2. 자식 컬렉션을 가져 오는 경우 기본적으로 값이 Deleted 인 개체를 기본적으로 제외하도록 설정합니다.

은 요약하면, 나는 효과적으로 Status 열거 속성과 실체에 관한 모든 데이터를 유지하지만, 기본적으로 상태를 Deleted의 값이 그 사람들을 제외 할.

옳은 방향의 모든 포인터가 많이 감사합니다.

답변

1

필터라는 nhibernate의 기능을 사용할 수 있습니다.

는 예 : 쿼리 그런

<class name="Post" table="Posts"> 
    <id name="Id"> 
     <generator class="identity"/> 
    <id> 

    <property name="Title"/> 
    <property name="Text"/> 
    <property name="PostedAt"/> 


    <filter name="NoDeleted" condition="Status <> 'Deleted'"/> 
</class> 

자세한 내용은

session.EnableFilter("NoDeleted") 

: 당신의 상단을 http://ayende.com/blog/3993/nhibernate-filters

+0

덕분에, 난 그냥 블로그를 읽고 있었다 :)를 해제 아십니까 만약 당신이 기본적으로 자식 컬렉션에 적용한다면 당신의 머리와 Fluent NHibernate에서 이것을 글로벌 필터로 표현하는 방법? Status 속성이있는 각 엔터티에 필터를 적용해야합니까? 아니면 열거 형의 속성을 가진 엔터티에 대해 필터를 전역으로 정의 할 수 있습니까? –

+0

괜찮습니다. 알아 냈습니다. 기회가 생기면 유창한 nhibernate 버전으로 답변을 업데이트하겠습니다. –