Criteria API规范JPA加入

问题描述

这是我目前的模特

@Entity
public class A {

@Id
private Long id;

String name;

...

@Entity
public class B {

@Id
private Long id;

@ManyToOne()
@JoinColumn(name = "a_id")
private A a;

@ManyToOne()
@JoinColumn(name = "c_id")
private C c;

...

@Entity
public class C {

@Id
private Long id;

private String status;

我想要一个类别A的列表,其中类别C的状态为“活动” 使用带有显式JOIN的Criteria API 作为下面的示例,并使用 IN

Subquery<B> subQB = query.subquery(B.class);
Root<B> rootB = subQB.from(B.class);
subQB.select(rootB.get("c").get("id"))
                      .where(builder.equal(rootB.get("c").get("status"),"ACTIVE"));        
predicates.add(root.get("id").in(subQB)); // root is class A

感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)