JPA / Hibenate本地查询获取和实体并急切地获取其关联不起作用

时间:2017-06-13 16:06:18

标签: hibernate jpa

Hibernate 5.2 docs说:

  

可以热切地加入电话和人物实体   避免可能的额外往返以初始化多对一   关联。

     

示例475. JPA本机查询选择已加入的实体   多对一协会

List<Phone> phones = entityManager.createNativeQuery(
    "SELECT * " +
    "FROM Phone ph " +
    "JOIN Person pr ON ph.person_id = pr.id", Phone.class )
.getResultList();

for(Phone phone : phones) {
    Person person = phone.getPerson();
}

我正在运行一个与此类似的示例。我的查询就像上面一样简单。但是,当我执行phone.getPerson()时,会向数据库发送另一个查询以检索Person。我没有重复的别名错误,也没有找到列错误。通过自己运行Hibernate生成的查询,我可以检查是否存在填充两个实体所需的所有列。

还尝试了查询的Hibernate替代方案。它没有用。除.addEntity().addJoin()之外,不推荐使用(尽管仍在手动示例中)。

0 个答案:

没有答案