JPA createNativeQuery遇到的几个问题


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");
    
  }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM