Решено: Изменение типа соединения на INNER_JOIN
Я пытаюсь получить исходную запись в таблице класса домена после выполнения критерия гибернации.
Например:
Домен класса A получил ассоциацию hasMany с доменом класса B.
Сущность A с идентификатором 1 получила две сущности B с идентификаторами 11 и 12.
Я выполняю следующие критерии:
Criteria criteria = session.createCriteria(A.class)
criteria.createAlias("Bs","B",CriteriaSpecification.LEFT_JOIN)
criteria.add(Restrictions.like("B.property", "%"+something+"%")
def list=criteria.list().unique()
Теперь у меня есть набор результатов со всеми сущностями A, которые получили сущность B, которая удовлетворяет критериям.
Но результаты A отличаются от исходных сущностей A, что касается отношения hasMany к B. Сущности B, которые не удовлетворяют критериям, отсутствуют.
Например: сущность A с идентификатором 1 получила право B только с идентификатором 11.
Даже если я выполню
def newA=A.findById(list[0])
newA
получил только сущность B с идентификатором 11. И 12 отсутствует.
Есть идеи?