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