首页 » 技术分享 » query did not return a unique result (直译 查询没有返回一个唯一的结果)

query did not return a unique result (直译 查询没有返回一个唯一的结果)

 

               

错误产生的原因

    public T findOneByCriteria(final DetachedCriteria detachedCriteria) {
        Session session = HibernateSessionFactory.currentSession();
        Transaction t = session.beginTransaction();
        Criteria criteria = detachedCriteria.getExecutableCriteria(session);
        T entity = (T)criteria.uniqueResult();
        t.commit();
        HibernateSessionFactory.closeSession();
        return entity;
    }

这是个模板类,用criteria查询返回一个实体对象,类似于

    T entity =null;
      List list = this.findAllByCriteria(dc);
      if(list.size()>0)
      {
       entity =(T) list.get(0);
      }

查询全部的记录而只取出一条,据说提供这种uniqueResult方法可以减少网络的阻塞,我没有试验过

但在查询中却产生了错误,看来有利就有弊,spring中也好像没有提供这种方法,似乎是为了避免这种

错误的产生吧。

query 也提供了这个方法,使用中或许也会报这个错误,

如果把握的不好,还是慎用。

           

转载自原文链接, 如需删除请联系管理员。

原文链接:query did not return a unique result (直译 查询没有返回一个唯一的结果),转载请注明来源!

0