getByProperty获取到多条数据报错

yun-zuoyi
许心洁 6 years ago
parent c7842e63a1
commit 34e2c13b38

@ -218,6 +218,7 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
/** /**
* *
*
* @param conditionName * @param conditionName
* @param conditionValue * @param conditionValue
* @param propertyName * @param propertyName
@ -478,16 +479,15 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
@Override @Override
public T getByProperty(DdlPackBean packBean) { public T getByProperty(DdlPackBean packBean) {
try {
List<T> list = findByHqlWhere(packBean); List<T> list = findByHqlWhere(packBean);
return list.size() != 0 ? list.get(0) : null; if (list.size() == 0) {
}catch(NoResultException ne){
LOGGER.error("数据不存在DdlPackBean{}", packBean); LOGGER.error("数据不存在DdlPackBean{}", packBean);
return null; return null;
}catch(NonUniqueResultException ex){ } else if (list.size() > 1) {
LOGGER.error("查询单条记录但出现多条。packBean{}", packBean); LOGGER.error("查询单条记录但出现多条。packBean{}", packBean);
throw new RuntimeException("存在多条记录:" + ex.getMessage()); throw new RuntimeException("存在多条记录");
} else {
return list.get(0);
} }
} }
@ -495,8 +495,7 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
public T getByProperty(String propertyName, Object value) { public T getByProperty(String propertyName, Object value) {
String queryString = "from " + persistentClass.getSimpleName() + " as model where model." + propertyName + "= :" + propertyName; String queryString = "from " + persistentClass.getSimpleName() + " as model where model." + propertyName + "= :" + propertyName;
try { try {
List<T> list = entityManager.createQuery(queryString).setParameter(propertyName, value).getResultList(); return (T) entityManager.createQuery(queryString).setParameter(propertyName, value).getSingleResult();
return list.size() != 0 ? list.get(0) : null;
} catch (NoResultException ne) { } catch (NoResultException ne) {
LOGGER.error("数据不存在prop{},value{}", propertyName, value, ne); LOGGER.error("数据不存在prop{},value{}", propertyName, value, ne);
return null; return null;
@ -533,8 +532,7 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
} }
try { try {
List<T> list = queryObject.getResultList(); return (T) queryObject.getSingleResult();
return list.size() != 0 ? list.get(0) : null;
} catch (NoResultException ne) { } catch (NoResultException ne) {
LOGGER.error("数据不存在", ne); LOGGER.error("数据不存在", ne);
return null; return null;
@ -1150,6 +1148,7 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
/** /**
* *
*
* @param item * @param item
* @return * @return
*/ */
@ -1213,6 +1212,7 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
/** /**
* *
*
* @param field * @param field
*/ */
private void fieldSetInitParam(T item, Field field) { private void fieldSetInitParam(T item, Field field) {
@ -1268,6 +1268,7 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
/** /**
* *
*
* @return * @return
*/ */
@Override @Override
@ -1290,6 +1291,7 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
/** /**
* *
*
* @return * @return
*/ */
@Override @Override
@ -1328,6 +1330,7 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
/** /**
* *
*
* @return * @return
*/ */
@Override @Override
@ -1350,6 +1353,7 @@ public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRep
/** /**
* *
*
* @return * @return
*/ */
@Override @Override

Loading…
Cancel
Save