我在一个非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();
由于
答案 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。