首页 > 解决方案 > 从弹簧数据 jpa 返回自定义复杂对象的选项

问题描述

我正在尝试使用以下逻辑从 MSSQL 数据库中获取数据。无法确定准备单个查询(SQL 或 JPQL)以将存储库响应作为 MyTestSTO 的选项。有人可以向我建议可用于实现此目标的选项。

预期对象格式:

{
        "id": "1",
        "name": "Test",
        "CabInfo": {
          "CabStatus": 0,
          "CabStatusStr": "Active",
          "CabFunctionalArea": {
            "FunctionalAreaId": 3
            },
          "CabApplication": {
            "ApplicationId": 333,
            "ApplicationAcronym": "OBM Router"
          }
        }
      }
       



And JPARepository Class  is :




public interface FloorPlanRepositoryExt extends JpaRepository<Sites, Long> { 
  
  //Other APIs on Sites Table.
  Can we use multiple news in below query ?
  @Query(value = "select new TestDTo(sp.id,sp.name,sp.cabStatus,sp.cabStatusStr, 
  sp.functionalArea,sp.applicationId,sp.ApplicationAcronym) from SpacePower sp where sp.roomId=:roomId)
  public List<TestDTo> getRoomSpacesCabByRoomId(@Param("roomId")Integer roomId);
  }

我的自定义 DTO 如下:

class TestDTo implements serializable{
  
  private String id;
  privateString name;
  private CabInfo cabInfo
  //Setters and getters and Constructor
  }





 class CabInfo{
  
  private String cabStatus;
  private String CabStatusStr;
  
  private CabFunctionalArea cabFunctionalArea;
  private CabApplication CabApplication;
  //Setters and getters and Constructor
  
  }

标签: javasqlhibernatejpaspring-data-jpa

解决方案


在您期望的选择查询中,TestDTo但在您定义的返回方法中RoomSpacesCabDTO


推荐阅读