Załóżmy, że mam klasę domen o nazwie "Użytkownik", która może śledzić inne obiekty "Użytkowników". To nie tak, że pole określony jako:Jak wyszukiwać elementy, których kolekcja zawiera inny element w Grails?
def hasMany=[followedUsers:User]
muszę zrobić odwrotnie (odnaleźć wszystkie obiekty użytkownika, które następują określonego obiektu użytkownika) bez konfigurowania odwrotną zależność, ponieważ nie jest to przypadek użycia wykonywane często . Starałem się zrobić coś takiego, za pomocą zamknięć:
User.findAll { it.followedUsers.contains(userInstance) }
ale to zawsze zwraca wszystkich użytkowników w bazie danych, niezależnie od ich statusu obserwacji. Próbowałem robić z HQL, ale również niestety nie.
Czy ktoś może dać mi szybką wskazówkę na najprostszy sposób, aby to osiągnąć? Dziękuję Ci.
Dziękuję bardzo. Skończyło się na tym, że robiłem 'def followers = User.findAll (" od użytkownika, gdzie? W elementach (followUsers) ", [userInstance])'. Próbowałem wcześniej tego rozwiązania, ale brakowało mu wywołania funkcji "elements()" w celu jego uzupełnienia. – ArmlessJohn