`
tenn
  • 浏览: 569789 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

Hibernate Notes

阅读更多
什么时候需要重定义equals和hashCode方法(EqualsBuilder,HashCodeBuilder):
    1,特定领域中的逻辑规则;2,Java Collection通过hashCode/equals方法判定两个对象是否相等,set集合中不允许出现重复的元素;3,定义了基于实体类属性的复合主键后,Hibernate要求复合主键类实现equals和hashCode方法,以作为不同数据之间识别的标志。

Hiberante中缓存发挥作用的情况:
1,通过id加载数据时
session.load();和session.iterate();--->类似一个load循环。
2,延迟加载。

一级缓存:
存在于session中由session管理,生命周期同session,采用Map方式实现。key-->id,value-->实体对象。需要通过session加载某个数据对象,session首先会根据锁要加载的数据类和id,在ectitiesByKey中寻找是否已有此数据的缓存实例,如果存在且其状态判定为有效,则以此数据实例作为结果返回。
session.evict();
session.clear();
二级缓存:
生命周期同SessionFactory,同一级缓存实现方式--采用Map方式实现。key-->id,value-->实体对象。-----根据id获得对象的查询。
查询缓存:
专门针对各种查询操作进行缓存。生命周期同SessionFactory,采用Map方式实现。key-->根据查询的语句、查询的条件、查询的参数和查询的页数等信息组成。value分两种方式:(1),使用select语句只查询实体对象的某些列或者某些实体对象列的组合时,value为整个结果集。(2),查询结果为某个实体对象集合时,value为实体对象id集合放到查询缓存中,同时整个结果集放到class缓存(也就是二级缓存),key-->id,value-->pojo对象。

查询方法与缓存:
get():一级缓存--〉查询数据库。
load():一级缓存--〉二级缓存--〉查询数据库。
list():直接运行查询结果所需要的查询语句。(1条SQL语句)。只能使用二级缓存中的查询缓存而无法使用二级缓存对单个对象的缓存。一次获得所有结果集对象并初始化所有的结果集对象。
iterator():先执行得到对象id的查询,再根据每个id值去取所要查询的对象。(可能1+N条SQL语句)。可以充分利用二级缓存,根据id在缓存中检索对象。执行时不会一次初始化所有的对象,而是根据对结果集的访问情况来初始化对象。
分享到:
评论

相关推荐

    hibernate(notes)

    【标题】:Hibernate 教程笔记 【描述】:Hibernate 是一个开源的Java持久化框架,它简化了数据库与Java应用程序之间的交互。本教程笔记将深入探讨Hibernate的核心概念、配置、对象关系映射(ORM)以及操作数据库的...

    Ajax-Notes.zip

    Ajax-Notes.zip,crud应用程序,使用spring、hibernate、junit、ajax,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新...

    spring-boot-mysql-rest-api-tutorial:使用Spring Boot,Mysql,JPA和Hibernate构建Restful CRUD API

    Spring Boot,MySQL,JPA,Hibernate Rest API教程使用Spring Boot,Mysql,JPA和Hibernate为简单的记笔记应用程序构建Restful CRUD API。要求Java-1.8.x Maven-3.xx MySQL的-5.xx设定步骤1.克隆应用程序git clone ...

    CS-Notes-master.zip

    4. **框架和库**:Java有众多流行框架,如Spring用于企业级应用开发,Hibernate用于对象关系映射,Maven或Gradle用于构建管理,以及JUnit用于单元测试等。笔记可能涵盖这些工具的使用方法和最佳实践。 5. **实战...

    spring_liu_MyNotes_sample

    该应用程序模拟了一个简单的便签管理器(Notes Manager),用户可以在此应用中添加、查看和删除便签。虽然我们对应用程序的功能性不做过多关注,但通过构建这样一个应用程序,读者可以学习到以下关键知识点: #### ...

    Spring iBatis Learning Notes

    Java JDBC作为低级别的API,在实际应用中存在诸多不便之处,因此业界尝试通过多种方式对其进行增强,比如EJB、JDO、Hibernate、Toplink(来自Oracle)、iBatis、SQL Executor以及Spring JDBC支持等技术。 #### 二、...

    Java Professional Notes

    13. 开源框架:了解并能够使用常见的Java开源框架,如Spring、Hibernate等,理解它们的工作原理和应用场景。 在碎片化时间里,通过参考这些Java编程主题和具体代码,可以有效提高Java编程技能。这些知识点覆盖了从...

    Notes-App-Backend

    开发者可能使用JDBC(Java Database Connectivity)或者ORM(Object-Relational Mapping)框架如Hibernate来处理数据库操作。 6. **JSON**:JSON(JavaScript Object Notation)是数据交换的常用格式,适合于前后端...

    learning-notes:学习一些东西

    notes分布式1.Lambda表达式Java基础JVM设计模式数据库并发微服务消息队列1.RabbitMq缓存1.Redis集群方式(主从复制,哨兵模式和Redis-Cluster集群)2.Redis内存回收机制3.Redis笔记4.Redis Cluster原理5.Redis锁6....

    Java_Architect_Notes-Balaji.rar_java architect

    4. **框架与库**:对Spring框架的深入理解,包括依赖注入、AOP(面向切面编程)、Spring Boot、Spring Cloud等,以及MyBatis、Hibernate等持久层框架的使用,能够帮助架构师构建高效、可维护的系统。 5. **微服务...

    Notes

    11. **Java库和框架**:Spring框架用于企业级应用开发,Hibernate是流行的ORM(对象关系映射)框架,JUnit是进行单元测试的工具。 12. **Java新特性**:Java从Java 8开始引入了lambda表达式、Stream API等新特性,...

    My_cool_notes

    11. **Java EE**:如果是进阶学习,可能还会涉及到Servlet、JSP、JDBC、EJB、Spring、Hibernate等企业级开发框架。 以上就是围绕"Java"标签和"My_cool_notes"主题可能涵盖的一些核心知识点,对于初学者或希望深化...

    Notes for Alfresco

    此外,Alfresco还支持即插即用的面向方面的架构设计,利用如Spring、Hibernate、Lucene、MyFaces、JSR168、JSR170以及JSE5等开放标准技术。 #### 二、Alfresco的可扩展性 在评估企业内容管理系统时,可扩展性是一...

    401java-reading-notes

    8. **数据库编程**:SQL基础、JDBC、连接池、ORM框架(如Hibernate、MyBatis)的使用。 9. **Java标准库**:常用类库的介绍和实际应用,如集合框架、日期时间处理、I/O流、文件操作等。 10. **实战项目**:可能...

    一篇大学毕业设计的开题报告

    在对比了Lotus Notes、Exchange Server、Windows .Net框架和JAVA等技术手段后,我们可以看到JAVA在大规模数据处理和安全性方面的优势,以及Struts和Hibernate在Web应用开发中的实用性。通过这两者的结合,有望构建出...

    中国移动业务管理系统 带详细注释

    用户名和密码均为:admin -The system uses struts+ Spring+ Hibernate framework, focusing on the three combined application development, all have detailed source notes, for beginners to students without...

    apache-tomcat-7.0.55

    `RELEASE-NOTES` 文件包含了Apache Tomcat 7.0.55版本的具体改进、修复的bug和新增功能。它是了解此版本更新内容的重要参考资料。 `RUNNING.txt` 文件提供了关于如何启动、配置和管理Tomcat服务器的指南。这对于...

    android-notes-app-backend:使用Java for Android及其Spring Boot REST API制作的Notes应用程序

    在本项目中,“android-notes-app-backend”是一个使用Java语言开发的Android笔记应用的后端部分,结合了Spring Boot框架来构建RESTful API服务。这个应用的主要目标是为Android客户端提供数据存储和检索功能,使...

    Spring-Boot---API-With-Mysql-and-Hibernate

    创建Mysql数据库创建数据库notes_app 3.根据您的安装更改mysql用户名和密码打开src/main/resources/application.properties 根据您的mysql安装更改spring.datasource.username和spring.datasource.password 4.使用...

    javaNotes

    11. **框架**:如Spring、MyBatis、Hibernate等流行框架简化了开发工作,理解它们的工作原理和使用方法,可以提高开发效率。 在"javaNotes-main"这个目录下,可能包含了以上各个主题的详细脑图,每个脑图作为一个...

Global site tag (gtag.js) - Google Analytics