hibernate query_下列关于hibernate说法正确的是

hibernate query_下列关于hibernate说法正确的是转自品略图书馆:http://www.pinlue.com/article/2020/03/0920/1310003985022.html以前写代码,总免不了编写登陆部分。在获取user的时候,只可能返回一个user实例,或者为null。以前使用以下方法实现。Java代码publicUserget(Stringid){Sessionsession=HibernateU…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

转自品略图书馆: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();

}

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187375.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java变量设置_如何正确的配置JAVA环境变量

    java变量设置_如何正确的配置JAVA环境变量原创:YiKiA2Data什么是环境变量?环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。为什么要配置环境变量?为了方便在控制台编译和运行java程序,不必进入到java的程序目录里面去运行。这样你放在任何目录下的java程序文件都可以编译运行,而不是必须把这个程序文件放在java.exe和javac.exe所在的目录下。什么是JAVA_HOME…

    2022年7月7日
    24
  • helm安装redis-cluster

    helm安装redis-cluster

    2021年5月14日
    253
  • java 调用.asmx_Java调用asmx的一个例子

    java 调用.asmx_Java调用asmx的一个例子importjava.util.Vector;importjavax.xml.namespace.QName;importjavax.xml.rpc.ParameterMode;importjavax.xml.rpc.encoding.XMLType;importorg.apache.axis.client.Call;importorg.apache.axis.client.Servi…

    2022年6月7日
    24
  • HDU 2955 Robberies

    HDU 2955 Robberies

    2022年1月7日
    36
  • 新学C#线程使用总结建议收藏

    这两天在项目上需要使用多线程技术,研究了半天,碰到了一些问题,现在简要总结下。线程的使用其实很简单,和JAVA里面差不多,但是还是有很多特别的地方,在C#中的线程,如果要对非线程创建的控件进行操作的话

    2021年12月20日
    45
  • 堆排序算法(图解详细流程)

    堆排序算法(图解详细流程)堆排序的时间复杂度O(N*logN),额外空间复杂度O(1),是一个不稳定性的排序目录一准备知识1.1大根堆和小根堆二堆排序基本步骤2.1构造堆2.2固定最大值再构造堆三总结四代码一准备知识堆的结构可以分为大根堆和小根堆,是一个完全二叉树,而堆排序是根据堆的这种数据结构设计的一种排序,下面先来看看什么是大根堆和小根堆1.1大根…

    2022年7月12日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号