bug 7461,count时去掉distinct。Fix Bug #7461

yun-zuoyi
贾文涛 5 years ago
parent 30fcf4f23f
commit a8efa90089

@ -569,7 +569,7 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
@Override @Override
public int listCount() { public int listCount() {
try{ try{
Long count = entityManager.createQuery("select count(distinct model) from " + persistentClass.getName() + " as model",Long.class) Long count = entityManager.createQuery("select count(model) from " + persistentClass.getName() + " as model",Long.class)
.getSingleResult(); .getSingleResult();
return count == null ? 0 : count.intValue(); return count == null ? 0 : count.intValue();
}catch(NoResultException e){ }catch(NoResultException e){
@ -580,7 +580,7 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
@Override @Override
public int findByPropertyCount(String propertyName, Object value) { public int findByPropertyCount(String propertyName, Object value) {
try{ try{
String queryString = "select count(distinct model) from " + persistentClass.getName() + " as model where model." + propertyName + "= :" + propertyName; String queryString = "select count(model) from " + persistentClass.getName() + " as model where model." + propertyName + "= :" + propertyName;
Long count = entityManager.createQuery(queryString, Long.class) Long count = entityManager.createQuery(queryString, Long.class)
.setParameter(propertyName, value) .setParameter(propertyName, value)
.getSingleResult(); .getSingleResult();
@ -612,7 +612,7 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
throw new IllegalArgumentException("参数名的数量和参数值不匹配!propertyNames:" + propertyNames.length + ",values:" + values.length); throw new IllegalArgumentException("参数名的数量和参数值不匹配!propertyNames:" + propertyNames.length + ",values:" + values.length);
} }
StringBuffer queryString = new StringBuffer(); StringBuffer queryString = new StringBuffer();
queryString.append("select count(distinct model) from " + persistentClass.getName() + " as model"); queryString.append("select count(model) from " + persistentClass.getName() + " as model");
int size = propertyNames.length; int size = propertyNames.length;
if (size > 0) { if (size > 0) {
@ -755,7 +755,7 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
throw new IllegalArgumentException("参数名的数量和参数值不匹配!propertyNames:" + propertyNames.length + ",values:" + values.length); throw new IllegalArgumentException("参数名的数量和参数值不匹配!propertyNames:" + propertyNames.length + ",values:" + values.length);
} }
StringBuffer queryString = new StringBuffer(); StringBuffer queryString = new StringBuffer();
queryString.append("select count(distinct model) from " + persistentClass.getSimpleName() + " as model where 1=1 "); queryString.append("select count(model) from " + persistentClass.getSimpleName() + " as model where 1=1 ");
if (hqlWhere != null && hqlWhere.length() > 0) { if (hqlWhere != null && hqlWhere.length() > 0) {
queryString.append(hqlWhere); queryString.append(hqlWhere);
@ -859,7 +859,7 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
@Override @Override
public int findByHqlWhereCount(String hqlWhere) { public int findByHqlWhereCount(String hqlWhere) {
StringBuffer queryString = new StringBuffer(); StringBuffer queryString = new StringBuffer();
queryString.append("select count(distinct model) from " + persistentClass.getSimpleName() + " as model where 1=1 "); queryString.append("select count(model) from " + persistentClass.getSimpleName() + " as model where 1=1 ");
if (hqlWhere != null && hqlWhere.length() > 0) { if (hqlWhere != null && hqlWhere.length() > 0) {
queryString.append(hqlWhere); queryString.append(hqlWhere);
@ -875,7 +875,7 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
@Override @Override
public int findByHqlWhereCount(DdlPackBean packBean) { public int findByHqlWhereCount(DdlPackBean packBean) {
StringBuffer queryString = new StringBuffer(); StringBuffer queryString = new StringBuffer();
queryString.append("select count(distinct model) from " + persistentClass.getSimpleName() queryString.append("select count(model) from " + persistentClass.getSimpleName()
+ " as model where 1=1 " + packBean.getWhereAppend()); + " as model where 1=1 " + packBean.getWhereAppend());
Query query = entityManager.createQuery(queryString.toString(), Long.class); Query query = entityManager.createQuery(queryString.toString(), Long.class);

Loading…
Cancel
Save