Ich habe eine folgende Domain-Klasse:
%Vor% Ich möchte jeden Benutzer finden, der die Rolle ROLE_ADMIN
hat. Gibt es eine Möglichkeit das mit dynamischen Findern zu tun? user.findAllByRoles('ROLE_ADMIN')
scheint mir einen Fehler zu geben.
UPDATE: Es ist ziemlich einfach, eine Assoziation abzufragen, wo die Klasse A
eine Liste der Klasse B
Instanzen hat und sowohl A
als auch B
Domänenklassen sind. Aber hier ist die Klasse A
eine Domänenklasse und die Klasse B
ist eine einfache Java-Zeichenkette.
Der Code zum Abfragen einer Assoziation, die eine Liste mit anderen Domänenobjekten enthält, würde folgendermaßen aussehen:
%Vor%Was ich suche, ist eine Möglichkeit, den Wert eines Strings anzugeben, zum Beispiel:
%Vor%UPDATE 2: Soweit ich gefunden habe, ist es nicht möglich, Kriterien mit Sammlungen primitiver Typen zu verwenden. Es ist jedoch möglich, HQL zu verwenden:
%Vor% Es ist jedoch nicht so nützlich wie eine findAll
oder where
Abfrage. Ich kann findAll
Methoden nicht verketten, um andere Methoden zu definieren, die zum Beispiel: get ROLE_ADMIN
users mit Benutzernamen wie 'xxx' das Umschreiben der ganzen HQL
Abfrage erfordert. Vielleicht ist es möglich, über HQL
Bedingung in Form eines where
Ausdruckes auszudrücken?
Vielleicht können Sie etwas tun wie:
wenn Sie bereits eine Benutzerliste (userList) haben
%Vor%Hoffe diese Hilfe!
Ich habe das gleiche Problem So finden Sie Datensätze nach Wert in ihrer Assoziierungseigenschaft über DetachedCriteria
Ich habe einige Nachforschungen angestellt und, wie ich festgestellt habe, ist es unmöglich.
Das GORM DSL selbst hat keine Methode, um zu überprüfen, dass der Wert in Verbindung enthält.
Es enthält nur die folgenden Kriterien in SQL: AND
, OR
, IN
.
Aber! Sie können der Zuordnung als Tabelle in den Kriterien Abfragen nach Association Redux
beitreten