createNativeQuery原生-命名查询总记录数目示例:
public int getCountByIdAndType(List<Integer> ruleIds, String sourceType) {
StringBuilder sql = new StringBuilder(" select count(*) from user_rule where source_type = ");
sql.append("'" + sourceType + "'");
sql.append(" and rule_id in (");
for (int i = 0; i < ruleIds.size(); i++) {
sql.append("?,");
}
// em指的是EntityManager
Query query = em.createNativeQuery(sql.substring(0, sql.length() - 1) + ")");
for (int i = 0; i < ruleIds.size(); i++) {
query.setParameter(i + 1, ruleIds.get(i));
}
Object result = query.getSingleResult();
int count = 0;
if (null != result
&& !"".equals(result.toString())) {
count = Integer.parseInt(result.toString());
}
return count;
}