【问题标题】:JPA Criteria - Fetch child entities instead of rootJPA 标准 - 获取子实体而不是根
【发布时间】:2014-10-15 01:22:11
【问题描述】:

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

【问题讨论】:

标签: java jpa criteria-api


【解决方案1】:

@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);

这个查询在INNER JOINFoo 之后通过存储在Foo 中的FK 获得BarBarFoo 的属性)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 2016-10-11
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    相关资源
    最近更新 更多