Tôi biết tôi có thể chuyển danh sách tới truy vấn được đặt tên trong JPA, nhưng làm thế nào về NamedNativeQuery? Tôi đã thử nhiều cách nhưng vẫn không thể chuyển danh sách tới NamedNativeQuery. Bất cứ ai cũng biết cách chuyển danh sách tới mệnh đề in trong NamedNativeQuery? Cảm ơn nhiều!Danh sách chuyển qua JPA tới mệnh đề IN trong truy vấn gốc có tên
Các NamedNativeQuery như sau:
@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)"
)
và nó được gọi như thế này:
List<Object[]> userList = em.createNamedQuery("User.findByUserIdList").setParameter("userIdList", list).getResultList();
Tuy nhiên kết quả là không như tôi mong đợi.
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
Bạn đã thử thực hiện chính xác cùng một truy vấn bằng ứng dụng khách DB của mình chưa? –