基于状态列的 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。
是否可以根据状态列以某种方式定义关系?
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。