首页 > 解决方案 > JPA左连接不起作用?

问题描述

我有两个实体 Outlet 和 Report。它们在 Entity 类中没有连接。即使插座 ID 不存在,我也想要报告。以下是我正在编写的查询,但它的行为类似于内部联接。

@Query("Select rep,out.area.area_name from Report rep left join Outlet out on out.id=rep.outletId where rep.cDate in :dates")
List<Object[]> getReportsByMethodAndFormulaAndTimePeriods(@Param("dates") List<LocalDate> dates);

有任何想法吗?

标签: springspring-bootjpaspring-data-jpa

解决方案


它不是 SQL,所以连接是由实体字段发生的。查询应该是这样的

@Query("Select rep,out.area.area_name from Report rep left join rep.outlet out where rep.cDate in :dates")

我假设 Report 实体有一个可为空的字段 Outlet 出口。

同样在你的情况下,out.area.area_name如果没有相关的出口可能会失败


推荐阅读