我们正在使用 Spring Data 并尝试使用子查询创建自定义查询,结果投影具有数组和其他属性,我们的问题是子查询数组。 public interface ProfesionalRepository extends JpaRepository<Profesional, Long> { @Query("SELECT p.id as idProfesional, " + " p.name as name, " + " p.surname as surname, " + " (SELECT a.descripcionIlt FROM Ausencia a WHERE a.profesional.id = p.id) as exclusionesCenso " + " FROM Profesional p ") List<ProfesionalCensoProjection> findCenso();}投影为:public interface ProfesionalCensoProjection { Long getIdProfesional(); String getName(); String getSurname(); List<String> getExclusionesCenso();}我们收到这样的错误:Caused by: java.sql.SQLException: ORA-01427: single-row subqueryreturns more than one row我们发现了其他帖子,如:Spring JPA projections have Collections?但是我们找不到带有子查询的例子。如果 JPA 不允许,哪个是这个问题的最佳解决方案?
1 回答
四季花海
TA贡献1811条经验 获得超5个赞
您尚未发布实体,但 Profesional 似乎与 Ausencia 有关系。然后您可以使用嵌套投影:
public interface ProfesionalCensoProjection {
Long getIdProfesional();
String getName();
String getSurname();
// returns a projection which would include only the description
List<AusenciaSumaryprojection> getExclusionesCenso();
}
public interface ProfesionalRepository extends JpaRepository<Profesional, Long> {
List<ProfesionalCensoProjection> findCenso();
}
添加回答
举报
0/150
提交
取消