ҳ-Career-HOME-Сﲿ

Hibernate之setMaxResults()与uniqueResult()

  1. setMaxResults()用来生成各种数据库对应的SQL语句,在SQL里控制返回的记录数
  1. uniqueResult()当明确返回结果只有一条或null时使用此方法获取唯一记录

此方法返回值为Object,当你能够肯定你的数据库中根据你的查询条件只会返回唯一结果,就可以用这个方法,如果返回记录数目大于1,将抛出NonUniqueResultException结果不唯一异常。最典型的例子就是我们在写登陆查询用户的时候,通常我们这样写:

public User getUser(Integer id){
	    session=HibernateUtil.openSession();
	    String hql="from User u where u.id = ?";
	    List list=session.createQuery(hql).setInteger(0, id).list();
	    if (list.size()==1){
	        return (User)list.get(0);
	    }else{
	        return null;
	    }
	}

Hibernate为我们提供了更好更简单的方法来获取实例:

public User getUser(Integer id){
	    session=HibernateUtil.openSession();
	    String hql="from User u where u.id = ?";
	    return (User)session.createQuery(hql).setInteger(0, id).uniqueResult();
	}
关于作者
  1. 悟空_也性感豹纹加钢管 Reply

    学习了;

回复

*