以前写代码,总免不了编写登陆部分。在获取user的时候,只可能返回一个user实例,或者为null。以前使用以下方法实现。
- public User get(String id){
- Session session=HibernateUtil.getSessionFactory().openSession();
- String hql="from User u where u.id = ?";
- List list=session.createQuery(hql).setString(0, id).list();
- if (list.size()==1){
- return (User)list.get(0);
- }else{
- return null;
- }
- }
public User get(String id){
Session session=HibernateUtil.getSessionFactory().openSession();
String hql="from User u where u.id = ?";
List list=session.createQuery(hql).setString(0, id).list();
if (list.size()==1){
return (User)list.get(0);
}else{
return null;
}
}
昨天重读hibernate的参考手册,发现query接口提供了一个更好的方法用来获取实例,当返回的实例明确只有一个或者为null的时候。
uniqueResult
public Object uniqueResult()throws HibernateException
返回:单个实例或者null
抛出:当返回的实例大于一个的时候的抛出NonUniqueResultException
对应的使用方法如下
- public User get(String id){
- Session session=HibernateUtil.getSessionFactory().openSession();
- String hql="from User u where u.id=?";
- return (User)session.createQuery(hql).setString(0,id).uniqueResult();
public User get(String id){
Session session=HibernateUtil.getSessionFactory().openSession();
String hql="from User u where u.id=?";
return (User)session.createQuery(hql).setString(0,id).uniqueResult();
分享到:
相关推荐
.uniqueResult(parent.children.size().max()) )).list(person); 排序: List persons = query.from(person) .orderBy(person.lastName.asc(), person.firstName.desc()) .list(person); ...
1)、uniqueResult()方法,返回一个单个对象 2)、list()方法返回一个集合 3)、参数绑定 4)、setParameter()方法,绑定任意类型的参数 5)、setProperties()方法,把命名参数与一个对象的属性值绑定 3. Hibernate...
一.使用Hibernate的Session对象操作数据库 1.初始化Hibernate:在要使用Hibernate的类的方法中实例化Configuration对象并用Configuration对象的configure()方法将hibernate... //HQL(Hibernate Query Language)语句查询
17.1.9 检索单个对象(uniqueResult()方法) 17.1.10 按主键逐个处理查询结果(iterate()方法) 17.1.11 可滚动的结果集 17.1.12 在HQL查询语句中绑定参数 17.1.13 设置查询附属事项 17.1.14 在映射文件...
17.1.9 检索单个对象(uniqueResult()方法) 17.1.10 按主键逐个处理查询结果(iterate()方法) 17.1.11 可滚动的结果集 17.1.12 在HQL查询语句中绑定参数 17.1.13 设置查询附属事项 17.1.14 在映射文件...
17.1.9 检索单个对象(uniqueResult()方法) 17.1.10 按主键逐个处理查询结果(iterate()方法) 17.1.11 可滚动的结果集 17.1.12 在HQL查询语句中绑定参数 17.1.13 设置查询附属事项 17.1.14 在映射文件...
17.1.9 检索单个对象(uniqueResult()方法) 17.1.10 按主键逐个处理查询结果(iterate()方法) 17.1.11 可滚动的结果集 17.1.12 在HQL查询语句中绑定参数 17.1.13 设置查询附属事项 17.1.14 在映射文件...
ProcessDefinition processDefinition = processEngine.getRepositoryService().createProcessDefinitionQuery().processDefinitionId(processInstance.getProcessDefinitionId()).uniqueResult(); return ...
setParameter("Name", "Alex").uniqueResult!User(); assert(u11.roles.length == 2); assert(u11.roles[0].name == "role10" || u11.roles.get()[0].name == "role11"); assert(u11.roles[1].name == ...