JPA Criteria - 获取子实体而不是root

时间:2014-08-21 12:00:17

标签: java jpa criteria-api

假设我们有2个映射和相关的实体:Foo - > BarFoo将FK保留到Bar。关键是,使用JPA Criteria Api我需要INNER JOIN这些表并获取所有Bar个实体。如果没有映射声明反向关系,我怎样才能实现呢?

1 个答案:

答案 0 :(得分:0)

@AVolpe感谢指出select

现在该怎么做了:

CriteriaQuery<Bar> query = b.createQuery(Bar.class);

Root<Foo> root = query.from(Foo.class);

query.where(b.equal(root.get("bar").get("id"),"10219431"));
Selection<? extends Bar> join = root.join("Bar",JoinType.INNER);
query.select(join);
Bar b=getEntityManager().createQuery(query).getResultList().get(0);

Bar INNER JOIN Foo获得Foo Bar FK存储在Foo({{1}}属性{{1}})