小编Li *_*Yin的帖子

JPA将列表传递给命名本机查询中的IN子句

我知道我可以在JPA中将列表传递给命名查询,但NamedNativeQuery怎么样?我尝试了很多方法,但仍然无法将列表传递给NamedNativeQuery.任何人都知道如何将列表传递给NamedNativeQuery中的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)"
)
Run Code Online (Sandbox Code Playgroud)

它被称为这样:

List<Object[]> userList = em.createNamedQuery("User.findByUserIdList").setParameter("userIdList", list).getResultList();
Run Code Online (Sandbox Code Playgroud)

但结果并不像我预期的那样.

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
Run Code Online (Sandbox Code Playgroud)

jpa arraylist in-clause nativequery

28
推荐指数
5
解决办法
6万
查看次数

我可以从JPA查询对象中获取SQL字符串吗?

我可以知道如何从JPA查询中获取sql吗?或者说,将JPA查询转换为SQL字符串?非常感谢你!

sql jpa

17
推荐指数
3
解决办法
3万
查看次数

标签 统计

jpa ×2

arraylist ×1

in-clause ×1

nativequery ×1

sql ×1