Набор объектов HQL из набора - PullRequest
0 голосов
/ 24 октября 2011

Я получил коллекцию Set<UserDTO> в объекте, отличном от Hibernate, и получил объект домена User в Hibernate.

UserDTO содержит меньше информации о пользователе (только идентификатор и имя)

Как выбрать полного пользователя Hibernate Set / List из объекта DTO?

Как это?

Set<UserDTO> setDTO = .....
String hql = "FROM User WHERE id IN (:userDTO )";
Query query = entityManager.createQuery(hql); 
query.setParameter("userDTO", setDTO);
return query.getResultList();

Спасибо

Ответы [ 2 ]

0 голосов
/ 25 октября 2011

Не забывайте, что вам нужно использовать Query # setParameterList () вместо Query # setParameter.

0 голосов
/ 24 октября 2011

Почти.Но сначала вам нужно будет извлечь идентификаторы из отдельной коллекции:

Set<Long> ids = new HashSet<Long>(setDTO.size());
for (UserDTO dto : setDTO) {
   ids.add(dto.getId());
}

Затем выполните запрос и передайте значение ids, установленное в качестве параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...