У меня есть таблица ролей. Каждая роль может принадлежать организации. Роли, которые не принадлежат организации, имеют значение null. Я хочу найти в таблице все роли для конкретной организации или организации, в которой она отсутствует.
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Role.class)
.add(Restrictions.or(
Restrictions.eq("organization",organization.getId()),
Restrictions.isNull("organization")));
Файл сопоставления имеет:
<many-to-one class="com.myname.models.Organization" name="organization">
<column name="organization_id" precision="22" scale="0" />
</many-to-one>
При выполнении запроса я получаю:
IllegalArgumentException occurred calling getter com.myname.models.Organization.id
Я обнаружил, что если я изменяю критерии, чтобы просто запросить пустые значения в организации, все работает, однако, как только я запрашиваю значение, я получаю ошибку.
Как изменить файл запроса или сопоставления для достижения моих целей?