`
浴盆儿
  • 浏览: 80690 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Hibernate-load到底在什么地方执行select语句读取数据

阅读更多

我们都知道load默认是支持lazy策略的,但是它到底在什么地方开始执行select语句读取数据呢?

注意:这里说的是最简单的情况,没有应用其他的策略,如inverse、lazy等

 

//这里不执行select查询语句,只是建立了一个代理对象
User user = (User)session.load(User.class,1)
//这里也不执行select查询语句,只是把执行load传入的ID号打印出来
//不从数据库中查询
System.out.println(user.getId());
//这里执行select查询语句
System.out.println(user.getName());
//不执行select查询语句,因为上句已经从数据库查询出数据
//数据已经在缓存里直接从缓存读
System.out.println(user.getName());

 

分享到:
评论

相关推荐

    hibernate-entitymanager-3.2.jar.zip

    7. **事件监听**:Hibernate EntityManager 提供了丰富的事件监听机制,开发者可以通过实现特定接口或者使用注解注册监听器,实现在对象生命周期中的特定时刻执行自定义逻辑,如@PrePersist、@PostLoad等。...

    hibernate-release-4.1.9.Final.zip

    3. 避免过多的Select语句,使用JOIN进行关联查询,减少N+1问题。 4. 在适当的地方使用@OneToMany和@ManyToOne,考虑双向关联的影响。 5. 对于大数据量的表,使用@Cacheable和@Cache注解优化读取性能。 总结,...

    Hibernate Recipes

    - **读取**: 通过`get()`或`load()`方法获取单个实体,或者使用HQL或Criteria API查询多个实体。 - **更新**: 先加载实体,修改其属性后,再调用`update()`方法保存更改。 - **删除**: 加载实体后,调用`delete()...

    Hibernate缓存机制解说

    - 条件查询时,Hibernate总是发出完整的SELECT语句,获取所有数据。 - 将获取的数据按ID存储在二级缓存中。 - 访问数据时,先检查Session的一级缓存,然后检查二级缓存,最后查询数据库,并将结果存储于缓存中。 - ...

    Hibernate开发手册

    - **简化数据访问**:通过使用 Hibernate,开发者可以更加专注于业务逻辑而无需关心复杂的 SQL 语句。 - **提高开发效率**:自动化的 CRUD 操作减少了大量的手动编码工作。 - **平台无关性**:支持多种数据库管理...

    jdbc基础和参考

    1.写一条恒成立的select语句,无论你输入的条件是什么,总是能讲表中的所有数据输出 select id,last_name from s_emp where '1' ='1'; where 1=1; findByOption(Integer age,String province,String gender){ ...

    Hibernate入门示例.doc

    2. 查询(Select):使用Session的`get()`、`load()`或`createQuery()`/`createNativeQuery()`方法获取数据。 ```java Session session = sessionFactory.openSession(); Transaction transaction = session.begin...

    hibernate课件

    【hibernate】是Java开发中的一个持久化框架,它为开发者提供了在Java应用程序中管理关系数据库的强大工具。本课件“拓程培训的hibernate课件”旨在帮助学习者深入理解并掌握这一框架的核心概念和技术。 1. **...

    hibernate优化

    - **减少不必要的SQL生成**:避免不必要的数据库交互,如无用的SELECT语句,可以显著减少数据库负载。 #### 4. 缓存策略 - **二级缓存**:利用Hibernate提供的二级缓存机制,可以缓存实体对象和查询结果,大幅减少...

    hibernate面试题

    - 当Hibernate执行查询时,并不会立即将数据加载到内存中。只有当程序真正需要访问这些数据时,数据才会被加载,从而节省了服务器内存资源,提升了性能。 #### 五、Hibernate中如何实现类之间的关系 - **一对多...

    一个简单的Hibernate泛型Dao的实现 ---- 20160624

    5. `findAll()`:获取所有实体对象的列表,可能使用`Session.createQuery()`来执行SQL的`SELECT * FROM table`语句。 这些方法的实现依赖于Hibernate的Session接口,它提供了与数据库交互的主要功能。为了实现这些...

    Hibernate笔试题加答案

    在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是(B) **选项解析:** - **A)** 配置客户和订单关联的cascade属性为save-update:这只能处理新增和更新...

    Hibernate缓存笔记

    1. **初始化查询**:初次条件查询时,Hibernate将执行`SELECT * FROM table WHERE ...`类型的SQL语句,获取所有符合条件的数据对象。 2. **数据缓存**:获取的所有数据对象将根据其ID存储到第二级缓存中。 3. **数据...

    Hibernate学习笔记

    Hibernate作为Java ORM框架,简化了Java应用程序与关系数据库之间的交互,通过对象模型抽象数据库操作,避免了直接编写SQL语句,提高了代码的可读性和可维护性。 2. **安装与配置** 学习笔记会涵盖Hibernate的...

    hibernate帮助手册api大集合

    1. **对象关系映射(ORM)**:Hibernate通过ORM将数据库中的表映射为Java类,使开发者可以使用面向对象的方式来处理数据,而不是传统的SQL语句。这提高了代码的可读性和可维护性。 2. **配置文件(hibernate.cfg....

    java工程师面试题大全-100%公司笔试题你都能碰到几个

    - 通过在web.xml中配置`load-on-startup`属性,可以在服务器启动时就创建Servlet实例。 - **生命周期**: - **初始化**:容器调用Servlet的`init()`方法。 - **服务**:处理客户端请求,通过`service()`方法调用`...

    hibernate创智记录

    Session 是与数据库交互的接口,执行 CRUD(创建、读取、更新、删除)操作。 4. **HQL(Hibernate Query Language)**:HQL 是面向对象的查询语言,类似于 SQL,但操作对象而不是表。例如,`from EntityName` 是...

    java面试知识

    - **定义**:基于SELECT语句的虚拟表。 - **用途**:简化复杂的查询,提供数据访问的安全性。 ##### 存储过程概述 - **定义**:一组预编译的SQL语句。 - **用途**:提高代码复用性和性能,简化复杂业务逻辑。 ###...

    自整理Java关于基础和框架的面试题

    - **finally**:在try-catch-finally语句块中使用,确保无论是否发生异常都会执行的代码块。 - **finalize**:对象被垃圾回收前调用的方法,已过时。 ##### Io流的层次结构 - 输入流:InputStream、Reader。 - 输出...

    java_学习资料

    - **生命周期**:初始化时读取配置文件`struts-config.xml`,并在每次请求时调用对应的Action处理。 **DispatchAction应用** - **概念**:DispatchAction是一种特殊的Action,它可以将请求转发到不同的方法进行...

Global site tag (gtag.js) - Google Analytics