我必须通过使用类似下面的NativeQuery连接来获取多个表中的数据:
String query = "Select ad.* from address_data ad inner join address a ON a.ad_id = ad.ad_id where address = :address";
Query q = entityManager.createNativeQuery(query, AddressData.class);
q.setParameter("address", address);
List<AddressData> permitList = q.getResultList();
在测试代码时,会创建2个查询来获取数据。
如何只获取一个查询来获取数据?
答案 0 :(得分:0)
在大多数情况下,您希望您的关系被延迟抓取fetch=FetchType.LAZY
,因此只有在您明确调用它时才会加载您的列表。
话虽如此,你可以用这种方式初始化一个懒惰的关联:
@Query("select ad from address_data ad inner join fetch a.addresss a where a.address = :address")
List<AddressData> methodName(@Param("address") String address);
不需要本机查询。您可以为实体定义存储库,并将上述方法添加到其中。
以下是Fetch Strategy的更详细说明。 您还可以查看repositories上的Spring Data JPA文档。
顺便说一句,你也应该发布你的实体。