diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseRepositoryImpl.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseRepositoryImpl.java index 2d9652a..6762066 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseRepositoryImpl.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/jpa/daoimpl/BaseRepositoryImpl.java @@ -1035,7 +1035,6 @@ public class BaseRepositoryImpl extends SimpleJpaRep double sumResult = 0.0; List objList = query.getResultList(); -// query.getSingleResult() if(objList.size() > 0){ sumResult = Double.parseDouble(objList.iterator().next().toString()); } @@ -1053,17 +1052,19 @@ public class BaseRepositoryImpl extends SimpleJpaRep @Override public double findAvgByProperties(String sumPropertyName, String groupByName, String[] paramName, Object[] paramValue) { if ((paramName != null) && (paramName.length > 0) && (paramValue != null) && (paramValue.length > 0)) { - StringBuffer sb = new StringBuffer("select avg(:"+sumPropertyName+") from " + persistentClass.getName() + " model where 1=1 "); + StringBuffer sb = new StringBuffer("select avg(model."+sumPropertyName+") from " + persistentClass.getName() + " model where 1=1 "); appendQL(sb,paramName,paramValue); - sb.append(" group by :groupByName"); + sb.append(" group by model." + groupByName); Query query = entityManager.createQuery(sb.toString()); - query.setParameter(":sumPropertyName", sumPropertyName); setParameter(query,paramName,paramValue); - query.setParameter(":groupByName", groupByName); - Double sumResult = entityManager.createQuery(query.toString(),Double.class).getSingleResult(); - return sumResult == null ? 0.0 : sumResult.doubleValue(); + double sumResult = 0.0; + List objList = query.getResultList(); + if(objList.size() > 0){ + sumResult = Double.parseDouble(objList.iterator().next().toString()); + } + return sumResult; }else{ throw new IllegalArgumentException("sum查询错误!paramName:" + paramName + ",paramValue:" + paramValue); } @@ -1077,17 +1078,19 @@ public class BaseRepositoryImpl extends SimpleJpaRep @Override public double findMaxByProperties(String sumPropertyName, String groupByName, String[] paramName, Object[] paramValue) { if ((paramName != null) && (paramName.length > 0) && (paramValue != null) && (paramValue.length > 0)) { - StringBuffer sb = new StringBuffer("select max(:"+sumPropertyName+") from " + persistentClass.getName() + " model where 1=1 "); - appendQL(sb,paramName,paramValue); - sb.append(" group by :groupByName"); + StringBuffer sb = new StringBuffer("select max(model." + sumPropertyName + ") from " + persistentClass.getName() + " model where 1=1 "); + appendQL(sb, paramName, paramValue); + sb.append(" group by model." + groupByName); Query query = entityManager.createQuery(sb.toString()); - query.setParameter(":sumPropertyName", sumPropertyName); setParameter(query,paramName,paramValue); - query.setParameter(":groupByName", groupByName); - Double sumResult = entityManager.createQuery(query.toString(),Double.class).getSingleResult(); - return sumResult == null ? 0.0 : sumResult.doubleValue(); + double sumResult = 0.0; + List objList = query.getResultList(); + if(objList.size() > 0){ + sumResult = Double.parseDouble(objList.iterator().next().toString()); + } + return sumResult; }else{ throw new IllegalArgumentException("sum查询错误!paramName:" + paramName + ",paramValue:" + paramValue); } @@ -1101,17 +1104,19 @@ public class BaseRepositoryImpl extends SimpleJpaRep @Override public double findMinByProperties(String sumPropertyName, String groupByName, String[] paramName, Object[] paramValue) { if ((paramName != null) && (paramName.length > 0) && (paramValue != null) && (paramValue.length > 0)) { - StringBuffer sb = new StringBuffer("select min(:"+sumPropertyName+") from " + persistentClass.getName() + " model where 1=1 "); - appendQL(sb,paramName,paramValue); - sb.append(" group by :groupByName"); + StringBuffer sb = new StringBuffer("select min(model." + sumPropertyName + ") from " + persistentClass.getName() + " model where 1=1 "); + appendQL(sb, paramName, paramValue); + sb.append(" group by model." + groupByName); Query query = entityManager.createQuery(sb.toString()); - query.setParameter(":sumPropertyName", sumPropertyName); setParameter(query,paramName,paramValue); - query.setParameter(":groupByName", groupByName); - Double sumResult = entityManager.createQuery(query.toString(),Double.class).getSingleResult(); - return sumResult == null ? 0.0 : sumResult.doubleValue(); + double sumResult = 0.0; + List objList = query.getResultList(); + if(objList.size() > 0){ + sumResult = Double.parseDouble(objList.iterator().next().toString()); + } + return sumResult; }else{ throw new IllegalArgumentException("sum查询错误!paramName:" + paramName + ",paramValue:" + paramValue); }