hibernate.QueryException: Legacy-style query parameters (`?`) are no longer supported 问题,记录一下。

问题源代码:Legacy-style query parameters (`?`) are no longer supported; use JPA-style ordinal parameters (e.g., `?1`) 

传统样式查询参数(`?`)不再支持;使用JPA样式的序号参数(例如,`?1’)

 

// 问题源码
String hql = "FROM AreaInfo WHERE addrtype = 4";
List parms = new ArrayList();
if(null != pCode){
   hql += " AND pCode = ? ";
   parms.add(pCode);
}
List list = find(hql,parms.toArray());
if(null != list && list.size()>0){
   return list;
}

// 封装的方法
public List find(String hql, Object...args){
   Query query = entityManager.createQuery(hql); 
   if(null != args && args.length > 0) {
      for(int i = 1; i < args.length; i ++) {
         query.setParameter(i, args[i]);
      }
   }
   List list = query.getResultList();
   return list;
}

//修改代码:
if(null != pCode){
   hql += " AND pCode = ?1 ";
   parms.add(pCode);
}
修改后编译通过。

你可能感兴趣的:(hibernate.QueryException: Legacy-style query parameters (`?`) are no longer supported 问题,记录一下。)