JPA passando a lista para a cláusula IN na consulta nativa nomeada
Eu sei que posso passar uma lista para consulta nomeada no JPA, mas e NamedNativeQuery? Eu tentei de várias maneiras, mas ainda não consigo passar a lista para uma NamedNativeQuery. Alguém sabe como passar uma lista para a cláusula in em NamedNativeQuery? Muito obrigado
The NamedNativeQuery é como abaixo:
@NamedNativeQuery(
name="User.findByUserIdList",
query="select u.user_id, u.dob, u.name, u.sex, u.address from user u "+
"where u.user_id in (?userIdList)"
)
e é assim chamado:
List<Object[]> userList = em.createNamedQuery("User.findByUserIdList").setParameter("userIdList", list).getResultList();
No entanto, o resultado não é o esperad
System.out.println(userList.size()); //output 1
Object[] user = userList.get(0);
System.out.println(user.length); //expected 5 but result is 3
System.out.println(user[0]); //output MDAVERSION which is not a user_id
System.out.println(user[1]); //output 5
System.out.println(user[2]); //output 7