Уже четыре дня я пытаюсь выполнить запрос в своей базе данных.
Вот проблема:
- У меня есть группа из Пользователи
- Пользователи могут иметь дату рождения (может быть нулевой)
- Я хочу перечислить Группы , которые имеют нет Пользователи И Группы , в которых есть Пользователи , в которых все пользователи имеют нулевое значение для даты рождения
Я смог легко получить группы, в которых нет пользователей (я сделал левое присоединение), моя проблема со второй частью, получение групп, в которых все пользователи имеют нулевое значение для даты рождения.
Пока этокод, который у меня есть:
Criteria c = session.createCriteria(Group.class);
c.createAlias("userCollection", "u", Criteria.LEFT_JOIN);
c.add(Restrictions.or(Restrictions.isNull("userCollection"),
Restrictions.isNull("u.birthDate")));
Это работает нормально, но когда у пользователя в группе есть не рождения, а дата рождения, группа все равно появляется в запросе, потому что у других в группе есть нулевая дата рождения.Я думаю, что мне нужно использовать не в , верно?
Если кто-нибудь может помочь, я много пробовал, но получаю исключение нулевого указателя.