基于状态列的 JPA 加入?

JPA join based on status column?

是否可以根据状态列以某种方式定义关系?

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

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

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

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

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

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

感谢Peter L