2016-08-19 4 views
0

ステータス列に基づいて関係を何とか定義することは可能ですか?JPAはステータス列に基づいて参加しますか?

Table A: id, valueA 
Table B: id, refIdA, valueB, status 

したがって、ステータスがアクティブなBのみを取得したいと思います。 em.find(id, A.class)で取得しています。エンティティ内でそれを定義する方法はありますか?

@Entity 
public class A { 
    ... 
    @OneToMany 
    @JoinColumn(name = "refIdA") 
    private List<B> b; 
    ... 
} 
+0

JPAで行うことはできません。あなたはいつもFKに加わります。実装スペシャルに落ちることは移植性を失う –

答えて

0

の場合は、@AdditionalCriteriaを使用します。ただし、この注釈はメンバーには適用されません。しかし、私のユースケースは大丈夫です。したがって、Bに注釈を付けると、すべてBのフィルタにStatus.ACTIVEが表示されます。

@Entity 
@AdditonalCriteria("this.status = com.example.Status.ACTIVE") 
public class B { 
    ... 
} 

Peter Lありがとうございます。

0

お試し@Whereサイトの使用例については、多くの例があります。つまり、How to use @Where in JPA Hibernate

+0

ありがとう、それは正しい方向に私を導く。 '@ Where'はEclipseLinkでは利用できませんが、' @ AdditionalCriteria'で可能です –

関連する問題