javax.persistence.Query 如何设置数组(集合)参数(spring data jpa)

前提:变量ageList是一个集合或者数组
   变量sex是String类型表示性别
使用下面这种方式设置参数
String querySql=" SELECT u.id, u.username, FROM u.age in (?) AND u.sex = ? ";
Query query = entityManager.createNativeQuery(querySql);
query.setParameter(1, ageList);
query.setParameter(2, sex);
ageList变量无效,查询不到想要的数据

解决办法:
String querySql=" SELECT u.id, u.username, FROM u.age in (:age) AND u.sex = :sexValue ";
Query query = entityManager.createNativeQuery(querySql);
final String age= "age";
final String sexValue= "sexValue";
query.setParameter(age, ageList);
query.setParameter(sexValue,sex);

将根据position(位置)设置参数的语句修改为根据名称设置参数的形式即可
转载请注明来源
posted @ 2019-05-06 19:17  imfx  阅读(4215)  评论(0编辑  收藏  举报