【发布时间】:2019-12-17 13:09:00
【问题描述】:
我有以下疑问:
@Query("SELECT new de.hiqs.project.Project(project.id, project.name, project.isArchived, " +
"project.customer.id, project.customer.name, project.customer.smallestTimeUnitEnabled, " +
"project.customer.smallestTimeUnit, project.defaultDailyEntrySettings.id, " +
"project.defaultDailyEntrySettings.performanceRecord, project.defaultDailyEntrySettings.startDateHour," +
"project.defaultDailyEntrySettings.startDateMinute, project.defaultDailyEntrySettings.endDateHour, " +
"project.defaultDailyEntrySettings.endDateMinute, project.defaultDailyEntrySettings.pause ) " +
"FROM Project project")
List<Project> findAllInOneRequest();
所以我有一个查询,它返回具有所选属性的所有项目,以便在一个请求中获取所有内容并避免 N+1 问题。如您所见,Project 与DefaultDailyEntrySettings 有关系(外键)。问题是并非每个项目都有DefaultDailyEntrySettings 子项(数据库中为空)。所以查询只返回有一个的projects。我希望它返回所有projects,如果defaultDailyEntrySettings不存在,则使用null初始化,而不是在没有defaultdailyEntrySettings的情况下不返回projects。有办法吗?
另一种选择是自动给每个project 一个带有空字段的defaultDailyEntrySettings,而不是外键为空,但我不知道如何使用注释来做到这一点。
【问题讨论】: