Ebean-Abfrage mit setDistinct () funktioniert nicht

8

Ich verwende eine Ebean-Abfrage im Spiel! Framework, um eine Liste von Datensätzen basierend auf einer bestimmten Spalte zu finden. Es scheint wie eine ziemlich einfache Abfrage, aber das Problem ist die Ebean-Methode. SetDistinct (true) setzt die Abfrage nicht wirklich auf distinct.

Meine Abfrage lautet:

%Vor%

In meinen Ergebnissen erhalte ich doppelte Künstlernamen.

Nach dem, was ich gesehen habe, glaube ich, dass dies die korrekte Syntax ist, aber ich könnte falsch liegen. Ich würde mich über jede Hilfe freuen. Danke.

    
jacobduron 20.10.2013, 00:10
quelle

4 Antworten

1

Laut Problem # 158: Fügen Sie Unterstützung für die Verwendung von setDistinct hinzu (indem Sie die ID-Eigenschaft von generated sql ausschließen) Im Ebean-Bug-Tracker besteht das Problem, dass eine ID-Spalte implizit am Anfang der Auswahl-Abfrage hinzugefügt wird. Dadurch wirkt das unterschiedliche Schlüsselwort auf die ID-Spalte, die immer eindeutig ist.

Dies soll in Ebean 4.1.2 behoben werden.

    
hfs 01.10.2014 10:18
quelle
0

Ich habe gerade das gleiche Problem aus heiterem Himmel gesehen und kann es nicht herausfinden. Wie hfs sagte, wurde es in einer späteren Version behoben, aber wenn Sie für eine Weile stecken bleiben, können Sie

verwenden %Vor%

In Ihrem Beispiel verwenden Sie also

%Vor%     
Shawn Vader 17.11.2015 13:33
quelle
0

Alternativ können Sie eine native SQL-Abfrage (SqlQuery) verwenden. Der Mechanismus wird hier beschrieben: Ссылка

Dies ist aus der Dokumentation:

%Vor%     
Michael 27.11.2015 01:15
quelle
0

Ich habe eine Lösung dafür: -

RawSql rawSql = RawSqlBuilder                 .parse ("SELECT distinct CASE, WENN PARENT_EQUIPMENT_NUMBER NULL DANN EQUIPMENT_NUMBER ELSE PARENT_EQUIPMENT_NUMBER END ALS PARENT_EQUIPMENT_NUMBER" +                         "VON TOOLS_DETAILS"). Create ();

%Vor%     
Anant Khurana 29.08.2017 12:20
quelle

Tags und Links