前提:变量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(位置)设置参数的语句修改为根据名称设置参数的形式即可
转载请注明来源