java如何在一个JPA存储库中映射2个域对象
我有两个域对象Job和JobModified。我希望映射到单个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 楼答案
我认为没有办法让两个实体共享一个DAO存储库,因为它们被类型化为一个类,第二个是ID类型。另外,作业和作业修改之间的关系是什么?如果只是为了显示作业已更新,那么使用更新的时间戳怎么样?或者让枚举显示某种生命周期状态
另外,您试图做的事情打破了面向对象的原则,这将是单一责任。一个班级知道如何做一件事并把它做好