【问题标题】:Options to return a custom complex object from a spring data jpa从弹簧数据 jpa 返回自定义复杂对象的选项
【发布时间】:2021-01-15 17:41:07
【问题描述】:

我正在尝试使用以下逻辑从 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
  
  }

【问题讨论】:

    标签: java sql hibernate jpa spring-data-jpa


    【解决方案1】:

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

    【讨论】:

    • 抱歉,我错过了对 TestDTO 的更正。知道我们如何在 Repository 中添加 CabInfo 对象
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 2021-02-25
    • 1970-01-01
    • 2020-06-05
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多