2016-04-19 11 views
0

Ich habe eine POJO, die ich mit mybatis Annotationen zuordnen möchte. Es wird die richtige Anzahl von Zeilen abrufen, aber es werden alle Nullwerte zurückgegeben. Gibt es etwas, was ich falsch mache?Mapping mybatis Ergebnisse mit Anmerkungen

POJO

public class Vendor { 
    private String vendorCode; 
    private String vendorName; 
} 

Mapper

@Select("SELECT V.AGNC_MGT_SYS_VNDR_CDE, V.AGNC_MGT_SYS_VNDR_NME FROM CPED_CPM1S.AGNC_MGT_VNDR_T V") 
    @Results({ 
      @Result(property = "vendorCode", column = "CPED_CPM1S.AGNC_MGT_SYS_VNDR_CDE"), 
      @Result(property = "vendorName", column = "CPED_CPM1S.AGNC_MGT_SYS_VNDR_NME") 
      }) 
    List<Vendor> selectAllVendors(); 
+0

'CPED_CPM1S' ist Tabelle oder Datenbank? – Blank

+2

Haben Sie ohne das Präfix 'CPED_CPM1S.' im Spaltenattribut versucht? Ich denke nicht, dass der Tabellenname oder der Datenbankname dafür notwendig ist. – Lucky

Antwort

0

Ändern der Auswahl zu:

@Results({ 
     @Result(property = "vendorCode", column = "AGNC_MGT_SYS_VNDR_CDE"), 
     @Result(property = "vendorName", column = "AGNC_MGT_SYS_VNDR_NME") 
     }) 

Die Spaltennamen genau die Ausgabespalten aus der Abfrage übereinstimmen sollte. In dem obigen Snippet CPED_CPM1S. wurde entfernt.

Und btw, eine andere Art und Weise, dies zu tun, ohne das Ergebnis Mapping zu geben, ist die Abfrage zu ändern, um die Ausgabe mit Spaltennamen wie die Bean-Eigenschaft Namen haben:

@Select("SELECT V.AGNC_MGT_SYS_VNDR_CDE as vendorCode, V.AGNC_MGT_SYS_VNDR_NME as vendorName FROM CPED_CPM1S.AGNC_MGT_VNDR_T V") 

Beachten Sie die ‚als Eigenschaftsname‘ zusätzlich zu die Abfrage.

Verwandte Themen