JPA加入基于状态列?

时间:2016-08-19 01:19:26

标签: java jpa eclipselink

是否有可能以某种方式定义基于状态列的关系?

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

所以在A类中我只想获取状态为活动状态的B。使用em.find(id, A.class)获取。有没有办法在实体中定义它?

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

2 个答案:

答案 0 :(得分:0)

试试@Where。网站上有很多关于如何使用它的例子,即How to use @Where in JPA Hibernate

答案 1 :(得分:0)

对于Eclipse Link,一种解决方案是使用@AdditionalCriteria。但是,此注释不适用于成员。但是对于我的用例来说还可以。因此,注释B会过滤B的所有Status.ACTIVE

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

感谢Peter L