`

load 和 get的区别

阅读更多
session加载数据库数据时,load 和  get


1.load是生成代理对象,调用该对象时才发出sql语句
	public void testLoad() {
	
		Session session = sessionFactory.getCurrentSession();
		session.beginTransaction();
		Teacher t = (Teacher)session.load(Teacher.class, 1);
		
                  //System.out.println(t.getName());  //此时生成sql语句
		session.getTransaction().commit();
                  System.out.println(t.getName()); //次句会报错ERROR LazyInitializationException,应为load生成的是代理对象,发出sql会有延迟,此处调用发出sql时,session已经关闭,所有会报错no session
 			}


2.get是直接发sql语句
	public void testGet() {
	
		Session session = sessionFactory.getCurrentSession();
		session.beginTransaction();
		Teacher t = (Teacher)session.get(Teacher.class, 1); //此时生成sql语句
		
		session.getTransaction().commit();
		System.out.println(t.getName());  //不会报错,输出对象t的name,因为t已经查出
	}
分享到:
评论

相关推荐

    hibernate中get和load方法的区别

    在Java的持久化框架Hibernate中,`get`和`load`方法都是用于从数据库中获取对象,但它们之间存在一些重要的区别。理解这些差异对于优化应用程序的性能和避免潜在问题至关重要。 首先,`get`方法是直接从数据库中...

    hibernate get load区别

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

    hibernate 三种 查询 方式 load与get的区别

    本篇文章将详细解析Hibernate中的三种主要查询方式——HQL(Hibernate Query Language)、Criteria API和Query API,并着重讨论`load()`与`get()`方法的区别。 一、HQL查询 Hibernate Query Language(HQL)是...

    Hibernate查询 load与get的区别及其它查询测试

    `load`和`get`方法是Hibernate中用于检索实体的两种主要方式,它们都是从Session接口中调用,但有明显的区别和各自的适用场景。 1. `load`方法: - `load`方法主要用于根据主键加载对象,它返回一个代理对象,而...

    Hibernate的get和load方法的区别

    在Java的持久化框架Hibernate中,`get`和`load`方法都是用于从数据库中获取对象,但它们之间存在一些重要的区别。理解这些差异对于优化应用程序的性能和避免潜在问题至关重要。 首先,让我们来深入了解一下`get`...

    session的get与load比较

    本文将深入探讨`get`与`load`两种方法的区别及其应用场景。 #### 一、基本概念 在Hibernate中,`Session`接口提供了`get`和`load`两种方法来获取数据库中的实体对象。 1. **get** 方法:尝试从当前Session的缓存...

    jquery-get-post-load 方法

    本文将详细介绍 jQuery 中 GET、POST 和 LOAD 方法的使用方法及其应用场景。 #### 二、GET方法 GET 方法通常用于从服务器请求数据,而不会更改服务器上的数据。它是一种安全的方法,因为数据是通过 URL 传递的,...

    hibernate中get和load的区别共5页.pdf

    标签“hibernate中get和lo”暗示了标签可能被意外截断,但我们可以推断完整标签可能是“hibernate中get和load的区别”。 在实际开发中,选择使用`get`还是`load`取决于具体需求。如果需要立即从数据库中获取对象,...

    Hibernate中get和load方法的区别以及close(),clear()、evict()等的区别

    首先,让我们关注`get`和`load`的区别: 1. **返回结果对比**: - `load`方法如果找不到对应的记录,会抛出`org.hibernate.ObjectNotFoundException`异常。这是因为`load`方法假设给定的ID肯定在数据库中存在,它...

    Hibernate中load方法与get方法的区别

    在Hibernate框架中,`load()`和`get()`都是用于从数据库中检索对象的方法,但它们在功能和行为上存在显著的差异。理解这些差异对于优化应用程序的性能和处理潜在异常至关重要。 首先,`load()`方法执行延迟加载策略...

    Hibernate中get()和load()的区别.docx

    在Hibernate ORM框架中,获取持久化对象的两种主要方法是`get()`和`load()`。它们都是用来根据主键ID查询数据库中的实体对象,但两者在执行机制和返回结果上有显著的区别。 1. `get()`方法 当调用`session.get()`...

    Ajax与jquery相结合实现的无数新验证用户之load()get方法

    在现代Web开发中,Ajax(异步...通过load()、$.get()和$.post()等方法,我们可以轻松实现实时用户验证,提供更加流畅的用户体验。在实际开发中,根据需求选择合适的方法,同时注意数据安全和用户体验,是至关重要的。

    Hiernate里get和load的区别

    在Hibernate框架中,`get` 和 `load` 都是用来从数据库中获取对象的方法,但它们之间存在一些关键差异。了解这些差异对于高效地使用Hibernate至关重要。 首先,让我们来看看这两个方法的基本用法: 1. `get` 方法...

    jquery最全面的ajax例子 ajax post get load 应有尽有

    $.get()和$.post()方法 、 $.getScript()和$.getJson() 、 $.ajax()方法 、 序列化元素 、 jQuery中的Ajax全局事件 这些都有详尽的例子,一看代码,你就能明白jquery里实现ajax是怎么回事了,简单明了。

    http_load修改版,只支持post请求,顺序执行(下载后需自行编译)

    在原始版本中,http_load支持GET和HEAD请求,但在这个特定的“修改版”中,它已被调整为仅支持POST请求。这表明该工具可能被专门设计用于测试处理POST数据的Web服务或API接口。 POST请求是HTTP协议中的一个重要方法...

    java spring mvc网站报XMLHttpRequest cannot load,只能get访问不能post访问 的解决办法.zip

    通过以上步骤,你应该能解决"XMLHttpRequest cannot load,只能get访问不能post访问"的问题。在实际操作中,记得仔细排查每个环节,确保所有配置和代码都符合预期。如果问题依然存在,那么可能需要查看更详细的错误...

    jQuery中load()方法语法格式

    `load()`方法是jQuery中一个非常强大的工具,它简化了异步加载和操作远程数据的过程。通过灵活运用其参数,开发者可以轻松地构建出响应快速、交互流畅的动态网页。理解并掌握`load()`方法的使用,对于提高前端开发...

    http_load 压力测试工具

    2. **多种请求模式**:除了基本的HTTP GET请求,http_load还支持HEAD和POST方法,这使得它能模拟更多种类的HTTP操作,例如获取网页头部信息或进行表单提交。 3. **统计报告**:测试完成后,http_load会提供详细的...

    Hibernate中Session.get()方法和load()方法的详细比较

    Hibernate中Session.get()方法和load()方法是两个常用的数据访问方法,但它们之间有着本质的区别。 首先,从返回值上看,get()方法直接返回实体类,如果查不到数据则返回null。load()方法则返回一个实体代理对象,...

Global site tag (gtag.js) - Google Analytics