Jos*_*e S 4 java jpa projection jpql spring-data-jpa
我们正在使用 Spring Data 并尝试使用子查询创建自定义查询,结果投影有一个数组和其他属性,我们的问题在于子查询数组。
\n\n public interface ProfesionalRepository extends JpaRepository<Profesional, Long> {\n\n @Query("SELECT p.id as idProfesional, " +\n " p.name as name, " +\n " p.surname as surname, " +\n " (SELECT a.descripcionIlt FROM Ausencia a WHERE a.profesional.id = p.id) as exclusionesCenso " +\n " FROM Profesional p ")\n List<ProfesionalCensoProjection> findCenso();\n}\nRun Code Online (Sandbox Code Playgroud)\n\n投影为:
\n\npublic interface ProfesionalCensoProjection {\n Long getIdProfesional();\n String getName();\n String getSurname();\n List<String> getExclusionesCenso();\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我们收到这样的错误:
\n\nCaused by: java.sql.SQLException: ORA-01427: single-row subquery\nreturns more than one row\nRun Code Online (Sandbox Code Playgroud)\n\n我们发现了其他帖子,例如:Spring JPA 投影可以有集合吗?
\n\n但是我们找不到带有子查询的示例。\n如果 JPA 不允许\xc2\xb4t 允许,那么哪个是解决此问题的最佳解决方案?
\n\n谢谢,
\n您尚未发布这些实体,但 Professional 似乎与 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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4775 次 |
| 最近记录: |