Mam dwa obiekty danych Hibernuj. Pierwszy to Użytkownik (z unikalnym identyfikatorem, nazwą użytkownika itp.), A drugi to klasa Współpracująca. Między tymi dwoma istnieje relacja n-to-m (realizet z zestawami). Oznacza to, że Użytkownik działa na wielu elementach Współpracy, a Współpracownik ma wielu użytkowników. Ponadto współpracownik ma dokładnie jednego użytkownika jako właściciela.Zapytanie o hibernację: czy zestaw zawiera określony obiekt?
<class name="CollaborateableImpl" table="Collaborateable">
<id name="id" type="int" column="id">
<generator class="increment" />
</id>
<property name="name" column="name" type="string" not-null="true" />
<property name="keywords" column="keywords" type="string"/>
<!-- Collaborateable has a Registered User as owner -->
<many-to-one name="owner" class="UserImpl" fetch="select">
<column name="User_id_owner" not-null="true" />
</many-to-one>
<!-- Users that collaborate on this Collaborateable -->
<set name="users" table="CollaborateOn" inverse="false">
<key column="Collaborateable_id" />
<many-to-many column="User_id" class="UserImpl" />
</set>
chciałbym wdrożyć kwerendę hibernacji, który wyszukuje Collaborateables które mają pewną użytkownika jako właściciela lub zawierające tę samą określonego użytkownika w zestawie Collaborateable.users. Ponadto powinna istnieć prosta klauzula WHERE, aby sprawdzić słowa kluczowe.
Czy w Hibernate jest coś takiego jak operator CONTAINS?
Na przykład:
FROM CollaborateableImpl WHERE (owner = :user OR users CONTAINS :user) AND keywords like '%:searchString%'
W przeciwnym razie, czy wiesz, jak rozwiązać ten problem z przyłączyć?
Jeśli używam kryteriów, jaki jest rodzaj ograniczenia? – jpprade