有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在一个JPA存储库中映射2个域对象

我有两个域对象JobJobModified。我希望映射到单个Jpa存储库,以便在输出中获得字段和值的正确映射。 现在,当我点击JobModified时,我只得到值,但当我点击Job时,我得到的是正确的字段值映射。有没有办法不用创建另一个存储库就可以做到这一点 --------

public interface IJobRepository extends JpaRepository<Job, Long> {

    @Query(nativeQuery = true, value = "SELECT DISTINCT " + " WJOB.JOB_SEQ_ID, " + " COMP.CMPNT_SEQ_ID, "
            + " WJOB.SHP_SEQ_ID, " + " WJOB.JOB_NUM," + " WJOB.JOB_DESC, " + " RPT.RPT_STTS, " + " DTLS.CUST_NM, "
            + " DTLS.RCPT_DT, " + " DTLS.SHPMNT_DT," + " DTLS.TRBN_SRL_NUM, ....... WJOB.JOB_SEQ_ID = CS.JOB_SEQ_ID")
    List<Job> requestJobs();

    @Query(nativeQuery = true, value = "SELECT WJOB.JOB_SEQ_ID , " + " COMP.CMPNT_SEQ_ID , " + " WJOB.SHP_SEQ_ID , "
            + " WJOB.JOB_NUM , " + " WJOB.JOB_DESC , " + " RPT.RPT_STTS, " + ..................
            + " and DTLS.lst_updt_dt = trunc(sysdate -1) ")
    List<JobModified> fetchpreviousDayModifiedJobs();

}

----点击JobModified时的输出------

[
  [
    214596,
    15,
    2,
    "0222",
    null,
    "WIP",
    "BRITISH COLUMBIA HYDRO",
    null,
    null,
    null,
    1475179622000,
    "501344153",
    1475179622000,
    "501344153",
    "N"
  ]
]

共 (1) 个答案

  1. # 1 楼答案

    我认为没有办法让两个实体共享一个DAO存储库,因为它们被类型化为一个类,第二个是ID类型。另外,作业作业修改之间的关系是什么?如果只是为了显示作业已更新,那么使用更新的时间戳怎么样?或者让枚举显示某种生命周期状态

    另外,您试图做的事情打破了面向对象的原则,这将是单一责任。一个班级知道如何做一件事并把它做好