So che posso passare un elenco alla query denominata in JPA, ma per quanto riguarda NamedNativeQuery? Ho provato molti modi, ma non riesco ancora a passare l'elenco a NamedNativeQuery. Qualcuno sa come passare una lista alla clausola in in NamedNativeQuery? Grazie mille!JPA che passa l'elenco alla clausola IN nella query nativa con nome
Il NamedNativeQuery è la seguente:
@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 si chiama in questo modo:
List<Object[]> userList = em.createNamedQuery("User.findByUserIdList").setParameter("userIdList", list).getResultList();
Tuttavia il risultato non è come mi aspettavo.
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
Hai provato eseguendo esattamente la stessa query utilizzando il client di DB? –