2016-09-29 1 views
0

Ich habe 2 Domänenobjekte Job und JobModified. Ich möchte ein einzelnes Jpa-Repository zuordnen, sodass in der Ausgabe die korrekte Zuordnung von Feld und Wert erhalten wird. Gerade jetzt, wenn ich nur die Wert bekomme, wenn ich JobModified schlug, aber wenn ich Job erhalte, bekomme ich korrekte Feld-Wert-Zuordnung. Gibt es eine Möglichkeit, es zu tun, ohne ein anderes Repository zu schaffen --------So ordnen Sie 2 Domänenobjekte in einem JPA-Repository zu

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(); 

} 

---- ausgegeben, wenn ich JobModified getroffen ------

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

Können Sie die Klassen- und Felddeklarationen für die zwei Klassen an der Spitze hinzufügen? Es ist schwierig zu verstehen, wonach Sie fragen, ohne den Java-Code zu betrachten. – manish

Antwort

0

Ich glaube, dass es keine Möglichkeit gibt, zwei Entitäten ein einzelnes DAO-Repository zu teilen, da sie in eine einzige Klasse geschrieben sind, wobei die zweite der ID-Typ ist. Wie lautet die Beziehung zwischen Job und JobModified? Wenn nur angezeigt werden soll, dass der Job aktualisiert wurde, was ist dann mit einem aktualisierten Zeitstempel? Oder ein ENUM zeigt einen Lifecycle-Status.

Auch das, was Sie zu tun versuchen, bricht ein Prinzip der OOP, die einzige Verantwortung wäre. Wo eine Klasse weiß, wie man eine Sache macht und es gut macht.

+0

Ja..Ich denke, Sie haben Recht, es bricht das OOP-Konzept..der Grund für 2 Entitäten sind - das Abfrageergebnis gibt zwei Sätze von Feldern für einen Job zurück – sromit

Verwandte Themen