首页 > 解决方案 > 如何使用可嵌入对象添加一对一关系

问题描述

要求:

获取请求列表以及请求反馈状态。

我现在在做什么: 使用 JPQL 查询获取所有请求。遍历每个请求并获取状态并设置为响应 dto。

我想做什么。使用 JPQl 查询获取所有请求以及状态

我在找什么:

如何为请求和状态添加一对一映射,以便获取状态。

示例代码

这是 MSREQUEST 实体

@Entity
@Table(name = "MSREQUEST")
public class Request implements Serializable {

    @Id 
    private long requestId;

    @Column(name = "DESC")
    private string desc;

    //getter.. setter...tostring and hashcode

}

这是状态实体

@Entity
@Table(name="FEEDBACKSTATUS")
public class FeedbackStatus implements Serializable {

    // composite-id key
    @EmbeddedId
    private RequestFeedBackId requestFeedbackKey = new RequestFeedBackId();

    @Column(name="STATUS")
    private Long status;

    //getter.. setter...tostring and hashcode

}

这是可嵌入的实体

@Embeddable
public class RequestFeedBackId implements Serializable {

    @Column(name="REQUESTID")
    private Long  requestId;

    @Column(name="FEEDBACKID")
    private Long feedbackId;


}

服务

@Override
public List<MsaRequestSearchDto> searchMsaRequests(MsaRequestSearchDto msaRequestSearchDto)
        throws MsaException, Exception {
    List<MsaRequestSearchDto> msaRequestSearchDtoList = msaRequestRepoCustom.findMsaRequests(msaRequestSearchDto);

    *// get feedback status loop thru and fetch status for each one. nee to avoid this
    if(msaRequestSearchDtoList != null && msaRequestSearchDtoList.size() > 0){
        // code to fetch dstatus
    }*/
    return msaRequestSearchDtoList;
}

我使用的 JPQL 查询..

public String GET_MSA_REQUEST = "SELECT dsr FROM Request dsr  WHERE 1=1";

急诊室 在此处输入图像描述

标签: springspring-mvcjpaspring-data-jpa

解决方案


推荐阅读