转自品略图书馆:http://www.pinlue.com/article/2020/03/0920/1310003985022.html

以前写代码,总免不了编写登陆部分。在获取user的时候,只可能返回一个user实例,或者为null。以前使用以下方法实现。

Java代码

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

抛出:当返回的实例大于一个的时候的抛出

对应的使用方法如下

Java代码

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();

}

备注:感觉不是很实用呀,当查询条件不太确定是否只有一条记录时,这时候就出麻烦了。

在Hibernate中Query的uniqueResult查询。相关推荐

  1. 浅谈Hibernate中的几个查询

    浅谈Hibernate中的几个查询 一.load和get方法的区别 1.load在查询时,先从一级缓存中寻找与数据索引对应的实体对象,然后构建并返回一个代理对象,当我们真正使用这个代理对象的时候,这时 ...

  2. Hibernate中的命名SQL查询

    2019独角兽企业重金招聘Python工程师标准>>> 1.  命名查询指的是用<sql-query>标签在影射文档中定义的SQL查询,可以通过使用Session.get ...

  3. hibernate查询缓存_在Hibernate中启用实体和查询缓存

    hibernate查询缓存 1.简介 在我执行过的与性能相关的任务中,这就是其中之一. 令人担心的是,如果对于特定实体每次都调用相同的查询,并且表数据在特定的时隙内不易更改,则我们可以使用Hibern ...

  4. 在Hibernate中启用实体和查询缓存

    1.简介 在我执行过的与性能相关的任务中,这就是其中之一. 令人担心的是,如果每次为特定实体调用相同的查询,并且表数据在特定的时隙内不易更改,则我们可以使用Hibernate缓存查询结果. 这意味着, ...

  5. Hibernate中createCriteria即QBC查询的详细用法 .Hibernate中createCriteria即QBC查询的详细用法 ....

    现在假设有一个Student类,内有id,name,age属性 String hql = "from Student s"; 按照以前的做法,我们通常是 Query query = ...

  6. jpa mysql sql分页查询语句_jpa 中 Query 的分页查询和更新

    1,查询分页 注意这个地方nativeQuery=true 代表的是可执行原生sql 先查询出来所有的数据,然后再差个总条数 返回page @Query(nativeQuery = true, val ...

  7. Hibernate中hql的基本查询、条件查询、排序插叙、分页查询、投影查询

    hql语句和sql语句不同,当我们使用hql语句查询时,要把SQL语句的表写成 实体类的类名,字段写成实体类的属性 基本查询:查出数据库中所有的数据 代码如下: //基本查询,查询所有的实体@Test ...

  8. hibernate中 query 的list方法 用法

    List<Map<String, Object>> list = session.createQuery(hql).list(); 以上代码的执行过程: 1.session对象 ...

  9. 什么事java中hql语句,hibernate中hql语句详解

    之前给大家讲了一下hibernate分页查询的内容,那么下面就要接着给大家对hibernate中hql语句方面的知识进行一下详细的讲解,一起来了解一下吧. 刚开始做项目的时候,项目当中的hql语句就是 ...

最新文章

  1. 【Android平台】Alljoyn学习笔记一 Alljoyn简介
  2. 双重检查锁实现单例模式的线程安全问题
  3. Alibaba Druid 源码阅读(二) 数据库连接池实现初步探索
  4. matlab exe mingw,matlab笔记:安装MinGW编译器
  5. 基于HTML5功能强大的滑块幻灯片
  6. Qunar黑科技-无侵入在线Debug的实现
  7. mysql jdbc 连接池配置
  8. 无盘服务器缓存,深入研究无盘服务器缓存
  9. Win Server 2016 安装 IIS 服务详细步骤-图文
  10. CC2530单片机开发--串口
  11. WIN10 vmware开启虚拟机蓝屏
  12. 数学建模--神经网络在线绘图工具,流程图绘图工具,OCR图片公式识别
  13. 软考 软件设计师个人总结 (程序语言部分)
  14. lesson5画表情包
  15. 【调剂】上海电力大学控制工程 、通信工程、人工智能等专业调剂信息
  16. 波克定律:好的想法必需经得起辩论
  17. 乾胤电商:拼多多商品立减券在哪设置?
  18. vue中实现无缝衔接的轮播效果
  19. 关于mysql登录不成功遇到的问题及解决方案Access denied for user ‘root‘@‘IP‘ (using password: YES)
  20. STM32的SYSTICK详解

热门文章

  1. CSS :hover闪烁问题
  2. 黑客之XSS注入练手:XSS Challenges通关指南
  3. 双网卡设置私有DNS服务器
  4. oracle中的with的用法,oracle with 话语的用法
  5. iperf+natapp做4g模块网络带宽测试
  6. DoNews专访:28岁的石一和两年融资25亿的DotC United Group
  7. 究竟是什么在决定着我们的命运?
  8. 德玛西亚之WorkFlow(一)工作流介绍
  9. 端口映射实现手机做服务器
  10. 使用netlink机制在内核与应用程序之间通信