我們正在使用 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
提交
取消