#hibernate #hibernate-criteria
#переход в спящий режим #критерии гибернации
Вопрос:
Хотелось бы ответить на приведенный ниже запрос с помощью способа определения критериев гибернации,
select * from A where (type, Version) in (select type, max(Version) from A group by type)
рассматриваю только способ определения критериев гибернации.
пожалуйста, предложите.
Комментарии:
1. пробовал с CriteriaBuilder.in но это не позволяет более одного раза указывать несколько столбцов.
Ответ №1:
Вы можете переформулировать это с помощью подзапроса exists, который вы можете смоделировать с помощью API критериев JPA. Что-то вроде следующего:
select * from A a where exists (select 1 from A sub group by sub.type having a.type = sub.type and a.version = max(sub.version))