Ich habe eine Tabelle namens Rollen. Jede Rolle kann zu einer Organisation gehören. Rollen, die keiner Organisation angehören, haben den Wert null. Ich möchte alle Rollen für eine bestimmte Organisation finden oder wo die Organisation innerhalb der Tabelle null ist.Hibernate-Kriterien Query Join mit Null-Wert
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Role.class)
.add(Restrictions.or(
Restrictions.eq("organization",organization.getId()),
Restrictions.isNull("organization")));
Die Mapping-Datei hat:
<many-to-one class="com.myname.models.Organization" name="organization">
<column name="organization_id" precision="22" scale="0" />
</many-to-one>
Wenn die Abfrage ausgeführt wird, erhalte ich:
IllegalArgumentException occurred calling getter com.myname.models.Organization.id
Ich habe festgestellt, dass, wenn ich die Kriterien ändern, um nur für NULL-Werte auf Organisation abfragen Alles funktioniert, aber sobald ich nach einem Wert abfrage, bekomme ich den Fehler.
Wie ändere ich die Abfrage oder die Zuordnungsdatei, um meine Ziele zu erreichen?
hat 'com.myname.models.Organiation.getId()' existieren, und werfen Sie eine Ausnahme in ihm? –