`

Hibernate part 4:Session中get()/load()详解

 
阅读更多

 

get():

	@Test
	public void testGet() {
		Session session = HibernateUtils.openSession();
		Transaction transaction = session.beginTransaction();
		transaction.begin();
		
		Customer c = (Customer) session.get(Customer.class, 1);
		System.out.println(c);
		
		transaction.commit();
		session.close();
	}

 根据ID查询数据,立即加载数据,查询后返回的也是Customer对象,如果数据不存在返回null

 

load():

 

@Test
	public void testLad() {
		Session session = HibernateUtils.openSession();
		Transaction transaction = session.beginTransaction();
		transaction.begin();
		
		Customer c = (Customer) session.load(Customer.class, 1);
		System.out.println(c);
		
		transaction.commit();
		session.close();
	}
 根据ID查询数据,延迟加载数据,当访问Customer类中的某个属性是才会触发查询,返回的也不是Customer对象,是一个代理对象,默认代理对象的数据都为null,如果对象不存在抛出 ObjectNotFoundException 异常
 这里面handler相当于一个回调函数,当调用Customer对象的一个属性时,通过handle执行查询

 handler未初始化


 
 handler初始化后


 

 如果Customer类被声明为final,load()延迟加载的策略会被转换为get()立即加载

  • 大小: 13.4 KB
  • 大小: 5.6 KB
  • 大小: 360.5 KB
  • 大小: 327.5 KB
分享到:
评论

相关推荐

    hibernate get/load/saveOrUpdate/statistics

    博文链接:https://log-cd.iteye.com/blog/205166

    org.hibernate.HibernateException: No Hibernate Session bound to thread

    在 Hibernate 中,每个线程都需要一个 Session 对象来与数据库交互。如果未绑定 Session 到线程, Hibernate 将无法正确地执行数据库操作。 解决方案 解决该错误的方法很简单,只需在相应的 manager 实现类中添加 ...

    精通Hibernate:Java对象持久化技术详解.pdf

    《精通Hibernate:Java对象持久化技术详解》这本书深入剖析了Hibernate这一流行的Java对象关系映射(ORM)框架,旨在帮助开发者全面理解并熟练掌握Hibernate的使用。Hibernate是Java开发中的重要工具,它简化了...

    最新版本的Struts2+Spring4+Hibernate4框架整合

    一、 项目名称:S2316S411H436 项目原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6 ...http://softlayer-sng.dl.sourceforge.net/project/hibernate/hibernate4/4.3.6.Final/hibernate-release-4.3.6.Final.zip

    session的get与load比较

    在Hibernate中,`Session`接口提供了`get`和`load`两种方法来获取数据库中的实体对象。 1. **get** 方法:尝试从当前Session的缓存中获取指定ID对应的实体对象;如果缓存中不存在,则直接执行SQL查询语句从数据库中...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1

    一共有三个分卷。全部下载才能解压。 这本书不错,值得一看。

    Hibernate Part 1:环境搭建

    NULL 博文链接:https://mvplee.iteye.com/blog/2186102

    Hibernate Part 2:单表CRUD

    此外,`Session`的`flush()`方法用于将内存中的改变同步到数据库,而`clear()`则可以清除当前Session中的对象。事务管理在Hibernate中非常重要,通常使用`Transaction`对象来包裹一组操作,确保其原子性。 对于更...

    精通Hibernate:Java对象持久化详解.zip

    《精通Hibernate:Java对象持久化详解》是一本深入解析Hibernate技术的专著,它主要针对Java开发者,旨在帮助他们理解和掌握Java对象持久化的精髓。Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了...

    Hibernate Part 3:核心API和常量配置

    **标题解析:**“Hibernate Part 3:核心API和常量配置”指的是一篇关于Hibernate ORM框架的系列教程的第三部分,主要讨论了Hibernate的核心应用程序接口(API)以及相关的常量配置。Hibernate是一个用于Java应用...

    hibernate get load区别

    ### Hibernate中的Get与Load方法详解 #### 概述 在Hibernate框架中,`get`与`load`方法都是用于从数据库加载实体对象的常用手段。然而,这两种方法在实现细节上有着本质的区别,这些差异主要体现在对缓存的利用、...

    Java Web整合开发王者归来(共4部分含源代码)part1

    Java Web整合开发王者归来(共4部分含源代码)part4: http://download.csdn.net/detail/tan3739/4595587 内容简介 参考:http://baike.baidu.com/view/7806146.htm 《Java Web整合开发王者归来(JSP+Servlet+Struts+...

    精通 Hibernate:Java 对象持久化技术详解 第2版

    精通 Hibernate:Java 对象持久化技术详解 第2版 学习Hibernate必备得一本书

    精通Hibernate:Java对象持久化技术详解(第2版)源码1

    《精通Hibernate:Java对象持久化技术详解(第2版)》是一本深入解析Java对象持久化框架Hibernate的专业书籍。源码文件涵盖了多个章节,包括chapter1到chapter10,这表明该书通过实例代码详细讲解了Hibernate的核心...

    hibernate配置文件详解

    Hibernate 配置文件详解 Hibernate 是一个流行的 ORM(Object-Relational Mapping)框架,用于简化 Java 应用程序中的数据库交互。 Hibernate 的配置文件是其核心组件之一,用于定义 Hibernate 的运行期参数。下面...

    Hibernate-nosession

    本文将深入探讨Hibernate-nosession的概念、应用场景以及如何在实际代码中实现。 首先,理解什么是Hibernate Session。Session是Hibernate中的核心接口,它充当了应用程序和数据库之间的桥梁,负责对象的持久化操作...

    SSH(Struts2+Spring4+Hibernate4)所需jar包

    SSH(Struts2+Spring4+Hibernate4)框架搭建需要的jar包,详细配置教程:...3、Hibernate:http://sourceforge.net/projects/hibernate/files/hibernate4/

    hibernate-2.1.8.part1.rar

    (4) browse the sourcecode in eg/org/hibernate/auction Tests: (1) copy your JDBC driver to the lib directory (2) edit etc/hibernate.properties (3) run "ant junitreport" or "build junitreport" (4...

Global site tag (gtag.js) - Google Analytics