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