我知道我可以將列表傳遞給JPA中的命名查詢,但NamedNativeQuery怎麼樣?我嘗試了很多方法,但仍然無法將列表傳遞給NamedNativeQuery。任何人都知道如何將列表傳遞給NamedNativeQuery中的in子句?非常感謝你!JPA在命名本機查詢中將列表傳遞給IN子句
的NamedNativeQuery是如下:
@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)"
)
,它被稱爲是這樣的:
List<Object[]> userList = em.createNamedQuery("User.findByUserIdList").setParameter("userIdList", list).getResultList();
但是結果並不如我所料。
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
你試過執行準確使用DB客戶端相同的查詢? – 2011-06-08 11:39:27