为了账号安全,请及时绑定邮箱和手机立即绑定

具有自定义集合属性的 JPA 投影

具有自定义集合属性的 JPA 投影

神不在的星期二 2022-11-30 14:26:13
我们正在使用 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();

}


查看完整回答
反对 回复 2022-11-30
  • 1 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信