4 Stimmen

Hibernate - Einschränkung für Klasse in einer Liste

Ich versuche, eine Liste von Artikeln zu finden, die eine bestimmte Art von Artikel in einem Set enthalten.

Zum Beispiel:

<class name="Owner" table="OWNER">
<id name="id" column="OWNER_ID" />
<set name="cats" table="OWNER_CATS" lazy="false">
    <key column="OWNER_ID" />
    <many-to-many class="Cat" />
</set>

<class name="Cat" table="CAT" discriminator-value="C">
<id name="id" column="CAT_ID" />
<discriminator column="type" type="character" />

<subclass name="Lion" discriminator-value="L">
    <property name="teeth" />
</subclass>
</class>

Wie kann ich mit Hilfe von Einschränkungen eine Liste von Besitzern erhalten, die Löwen als Haustiere haben?

Ich habe etwas Ähnliches wie das Folgende versucht, ohne Erfolg:

criteria.createCriteria("cats").add(Restrictions.eq("class", Lion.class));

5voto

Mat Mannion Punkte 3255

Im Moment (obwohl ich nicht sicher bin, ob dies beabsichtigt ist) ist die Art und Weise, wie dies funktioniert, dass Sie den Diskriminatorwert als den Beschränkungswert angeben müssen, anstatt die Klasse selbst, also:

criteria.createCriteria("cats").add(Restrictions.eq("class", "L"));

in Ihrem Beispiel.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X