我有一个与多个代码/标签实体相关联的主jpa实体。
当我使用findOne(mainEntityId)
时,我可以看到Hibernate正在创建一个带有多个"左连接"的SQL查询,这就是我手工完成的。
但是,当我使用findByName(name)
(" name"作为主要实体的辅助唯一键)时,Hibernate将发出一个查询,每个代码/标签实体没有连接+一个查询。我想这可能是一个更好的策略,如果你有很多"主要实体",但在我的情况下,我只有一个结果,我想调整映射或存储库,所以我得到"左连接& #34;我的单个结果" findByName"查询。
有没有办法做到这一点,怎么做?
答案 0 :(得分:2)
您可以使用@EntityGraph注释或使用fetch join明确定义查询来实现此目的:
@EntityGraph(attributePaths = "children")
Parent findByName(String name);
@Query("select p from Parent p join fetch p.children")
Parent findByName(String name);