欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

javaweb报错org.hibernate.NonUniqueResultException: query did not return a unique result: 2

程序员文章站 2022-04-15 22:57:22
...

错误原因:session.createQuery(hql).uniqueResult() 造成的。查询结果不是唯一的时候这个函数就报错。

解决方法:使用list()

public T getByHql(String qlString, Parameter parameter) {
		Query query = createQuery(qlString, parameter);
		return (T) query.uniqueResult();
	}
	
改为:
public T getByHql(String qlString, Parameter parameter) { 
		Query query = createQuery(qlString, parameter); 
		List list = query.list();
 		if(list != null && list.size() > 0)
  			return (T) list.get(0); 
 		 else 
  			return (T) query.uniqueResult(); 
  }
	 */

或者从本质上解决问题,找出数据库中重复的数据删掉。

相关标签: mysql java