1.count方法返回值類型為java.math.BigInteger
Query query = null; String sql = null; sql = "select count(totalscore) from p_record where totalscore >= 60 "; query = em.createNativeQuery(sql); BigInteger count = (BigInteger)query.getSingleResult(); double result = count.doubleValue();
2.getResultList如果數據庫為空,那么結果集為10個null組成的空集合,長度為1,[null,null,null,null,null,null,null,null,null,null]
List list = query.getResultList(); if(list.size()==1&&list.contains(null)){ return null; }
3.查詢結果集映射為map,query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
獲取value,字段名為key,結果get("key");
private String getGradeidByGradeAndItem(String grade,String item){ Query query = em.createNativeQuery("select gradeid from dm_pt_grade where isvalid =1 and grade = ?1 and ptitemid = ?2 "); query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); query.setParameter(1, grade); query.setParameter(2, item); List<Map> list = query.getResultList(); if(list.size()==1&&list.contains(null)){ return ""; } return (String) list.get(0).get("gradeid"); }