使用 :param的方式来传递参数,下面举个例子
@Override public List<Map> ajaxRelationByCompanyUUID(String companyUUID, String ajaxQuery,List<Integer> types, Integer fetchSize) { String sql = "select * from Company where companyuuid= :companyuuid" + " and CompanyType in (:types)"; Map<String, Object> params = new HashMap<String, Object>(); //公司uuid params.put("companyuuid",companyUUID); //公司类型(集合) params.put("types",types); //模糊查询 if (StringUtils.isNotBlank(ajaxQuery)) { sql += " and (CompanyNameCN like :ajaxQuery )"; params.put("ajaxQuery" ,"%" + ajaxQuery + "%"); } Query query = em.createNativeQuery(sql); for (Map.Entry<String, Object> entry : params.entrySet()) { query.setParameter(entry.getKey(), entry.getValue()); } return super.exectSqlMap(query); }