从set设置的HQL对象

时间:2011-10-24 18:45:05

标签: java hibernate hql

我在一个非Hibernate对象中得到了一个Set<UserDTO>集合,我在Hibernate中得到了一个User域实体。

UserDTO包含的用户信息较少(仅限ID和名称)

如何从DTO对象中选择完整的Hibernate用户Set / List

喜欢这个?

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 :(得分:0)

几乎。但您必须首先在单独的集合中提取ID:

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

然后继续查询,并将ids设置为param。

答案 1 :(得分:0)

不要忘记您需要使用Query#setParameterList()而不是Query#setParameter。