2014-03-26 9 views
5

Ich habe einige nativen Abfrage und verwenden soll das Ergebnis der Ausführung der Abfrage in Liste der nicht-Entity POJO Klassen zuzuordnen:Wie @ConstructorResult Anmerkung

@SqlResultSetMapping(
    name = "SomeMapping", 
    classes = { 
     @ConstructorResult(targetClass = SomeClass.class, 
      columns = { 
       @ColumnResult(name = "id", type = Integer.class), 
       @ColumnResult(name = "NAME", type = String.class), 
       @ColumnResult(name = "DATE_BEGIN", type = java.util.Date.class) 
      } 
     ) 
    } 
) 

public class SomeClass{ 
    private Integer id; 
    private String name; 
    private java.util.Date begDate; 
    private java.util.Date endDate; 

    public SomeClass(Integer id, String name, Date begDate){ 
     this.id = id; 
     this.name = name; 
     this.begDate = begDate; 
    } 

    //Getters & Setters ... 
} 

Und in der Regel, wie ich aufgrund der Ausführung der Abfrage abgerufen werden soll :

String query = "SELECT " + 
"A.id AS 'id', " + 
"A.name AS 'NAME', " + 
"A.begDate AS 'DATE_BEGIN' " + 
"FROM " + 
"SomeTable A " + 
"WHERE A.endDate < '2014-01-01'"; 

List<SomeClass> result = em.createNativeQuery(query, "SomeMapping").getResultList(); 

Aber ich bekomme immer die Liste der Objekte. Wie kann ich eine Liste meiner POJO-s abrufen?

+0

Das ist eine gute Erklärung für die Probleme ist https://stackoverflow.com/questions/24160817/getting-error-could-not-locate-appropriate-constructor-on-class?answertab=votes#tab-top –

Antwort

0

Versuchen Sie, die Entität @SqlResultSetMapping auf eine Entität zu verschieben.

+1

Diese gibt keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag. – serejja

+0

Ich habe es nicht versucht, aber ich glaube, es ist die Antwort. Die Tatsache, dass ich es wie einen "Versuch" formuliert habe, hat nichts mit seiner Richtigkeit zu tun. PS: Sie können sicher sein, wenn ich eine Reaktion von OP bekomme, werde ich den Text entsprechend ändern. –

+0

Wenn ich die Annotation "@SqlResultSetMapping" in eine andere Entity-Klasse (mit Annotation "@Entity") verschiebe, erhalte ich eine leere Liste. Aber die Ausführung derselben Abfrage in HeidySQL gibt mehrere Zeilen zurück. – Silence