2017-10-28 2 views
0

Ich muss verschiedene Java-Pojo-Ergebnis-Mapping von derselben Abfrage mit unterschiedlicher Spalte in SQL "Wo" Bedingung erhalten. Es.Verschiedene Ergebniszuordnungen für die gleiche Abfrage, aber mit variabler Spalte - MyBatis 3

@Select("Select field1,fiel2,...,fieldn From table where #{column}=1") 
List<Pojo> getGenericDetails(@Param(column)); 

Mybatis "Diskriminator" macht nicht den Job. Kann jemand wissen, wie man das macht?

Vielen Dank im Voraus

+0

Sie meinen Sie verschiedene Felder müssen auf der Basis der Säule verwendet in dem Zustand gewählt werden –

+0

Bitte fügen Sie nur relevante Tags hinzu, da diese Tags für diejenigen zusammengefasst werden, die Ihre Frage beantworten –

Antwort

0

Wenn Sie wollen, verschiedene Java Pojo Ergebnis Abbildung von derselben Abfrage mit anderen Spalte in SQL „Wo?“ Zustand zu bekommen, werde ich versuchen, die folgenden:

@Select("Select field1,fiel2,...,fieldn From table where #{column}=1") 
List<Map<String,Object>> getGenericDetails(@Param(column)); 

als Ergebnis Der Schlüssel in der Map ist field1, fel2, ..., fieldn, der Wert ist das Ergebnis von field1, fel2, ..., fieldn.

Ich hoffe, das obige hilft.

+0

Ich bin mir nicht sicher, ob ich das verstehe. Sie haben inteed, dass auf diese Weise bekomme ich eine Liste von Schlüssel (Feld) String, Wert (Liste von Feld) -Objekt, und nachdem ich Schlüssel verwenden, um Ergebnisse auf verschiedenen Pojo? – Maforast

0

Das Mapping, was Sie geschrieben haben funktioniert Aber es funktioniert auf dem gleichen POJO.

Wenn Sie verschiedene POJOs basierend auf der Spalte in where-Klausel benötigen, müssen Sie unterschiedliche Abfragen für jede Bedingung in where-Klausel schreiben.

Das ist so gut wie Spaltenname in Abfrage angeben. So

Ich schlage vor, Sie verschiedene queryies zu schreiben und erstellt verschiedene POJOs und der Methodenname zu Kontext relevant machen, wo Sie diese queryies verwenden

+0

Hallo Harsha Tnx für die Antwort, aber das Ziel ist nur nicht mehrere Abfragen verwenden, da was sich ändert, ist nur ein Parameter, der die Spalte darstellt. Sonst sollte ich 5 verschiedene Abfragen machen, die dasselbe tun – Maforast

+0

In diesem Fall müssen Sie dasselbe POJO verwenden –

+0

Kann ich den Rückgabetyp des Mappers auf diese Weise setzen: List und übergibt T verschiedene Objekttypen zur Laufzeit in myBatis ? – Maforast

Verwandte Themen