Java JPQL标准

Java JPQL标准,java,jpa,criteria,jpql,Java,Jpa,Criteria,Jpql,我有以下课程: @Embeddable Class A // (with field String x); Class B // (with field @Embedded A a) Class C // (with field @OneToOne B b); 我想使用条件创建方法getAllByXs(List xs)来获取C.b.a.x位于xs 带有内容的类型化查询从c c中选择c,加入c.b,其中b.a.x IN:param工作正常。如何使用条件编写相同的查询?基于条件的查询示例可能如下所

我有以下课程:

@Embeddable Class A // (with field String x);
Class B // (with field @Embedded A a)
Class C // (with field @OneToOne B b);
我想使用条件创建方法
getAllByXs(List xs)
来获取
C.b.a.x
位于
xs


带有内容的类型化查询
从c c中选择c,加入c.b,其中b.a.x IN:param
工作正常。如何使用条件编写相同的查询?

基于条件的查询示例可能如下所示:

CriteriaBuilder cb=em.getCriteriaBuilder();
CriteriaQuery cq=cb.createQuery(C.class);
根c=cq.from(c.class);
连接b=c。连接(“b”);
cq.选择(c)
cq.where(b.get(“a”).get(“x”).in(cb.parameter(List.class,“param”)));
List=em.createQuery(cq)
.setParameter(“param”,Arrays.asList(“foo”,“bar”,“baz”))
.getResultList();