Я предполагаю, что ваш session.createCriteria(classtype).list()
вызов несколько раз возвращает некоторые объекты этого класса.
Это может произойти, если у вас есть отношение OneToMany
или ManyToMany
, которое охотно выбирается.
Один из способов решить эту проблему, как правильно указывает Дж. Б. Низет, - это использовать Criteria.DISTINCT_ROOT_ENTITY
ResultTransformer
.
Это, однако, сделает работу на «стороне Java»: все объекты будут извлечены из базы данных, а затем все дубликаты будут удалены.
Было бы намного лучше сделать OneToMany
или ManyToMany
ленивым (что по умолчанию) вместо нетерпеливого.