Hibernate问题总结
1、
合理选择list(放而不取)和iterate(放且取,先取所有数据的ID值,再根据ID值去查询相应数据,并把取出的数据放于二级缓存中,但是先去缓存中找,再查数据库)方法,充分利用二级缓存;如果缓存中没有数据,则iterate方法的效率很低,因为要发出1+N条查询语句,而list每次只会发出一条查询语句;
2、
一对多中,对对象的关联集合属性进行二级缓存;
3、
一对多中,可以合理利用迫切查询来针对懒加载的弊端;
4、
检索时,推荐用HQL,因为HQL很灵活,并且可读性很好,并能重载配置文件中的数据获取(fetch)方式。对HQL、QBC和SQL的使用,推荐顺序:HQL->QBC->SQL;
5、
HQL可以使用连接查询,可以实现多态查询;
6、
多对多=>拆分成两个一对多(注意单双向的实际意义);
7、
一对多可以实现表的自连接(主键和外键都在一张表上);
8、
组件映射(细粒度的对象属性,讲一个实体类拆分成几个小的实体类,但是仍然只用一张表映射);
9、
命名的HQL,在hibernate的配置文件中配置;
10、
本地纯粹的SQL语句(尽量少用);
11、
无论是QBC还是HQL,都可以只查询表中的某一个字段的数据(返回相应的数据类型),也可以查询某几个字段的数据(返回一个Object类型的数组);
12、
动态更新(dynamic-update)只是更新改变了的对象属性,对没有改变的对象属性,在底层的SQL语句中不做update操作;
13、
动态插入(dynamic-insert)只是插入已经赋值的对象属性,对于没有赋值的对象属性,,在底层的SQL语句中不做insert操作;
14、
解决由于懒加载(lazy)而造成的异常,可以用Hibernate.initialize()方法对相应的对象进行初始化,也可以用Query的迫切查询HQL进行查询,还可以用OpenSessionInView设计模式,不推荐将lazy设为false;
15、
在注解方式配置一对多或多对多双向关联中,必设mappedBy属性,相当于XML文件中的inverse属性,设置有哪一方维持关联关系;
16、
注意:其实hibernate中的实体类对象就是通过数据库表中已有的数据构造的,其实数据库表中的数据与hibernate并无什么关系,只不过是hibernate将数据封装成对象罢了,所以数据库表中的数据与hibernate中的什么实体类、什么多态查询、什么继承关联、一对多、多对多等等没有什么紧密的关系,是分离的。所有的这些关联关系在数据库表上无非就是几个外键的关联罢了,但是在hibernate中却被封装成了类与类之间的组合关系;
分享到:
相关推荐
### Hibernate知识点总结 #### 一、Hibernate概述 Hibernate是一个开源的ORM(Object Relational Mapping,对象关系映射)框架,用于Java应用与关系型数据库之间的交互。它通过使用描述对象和数据库之间映射的元...
总结来说,Hibernate是一个强大的ORM框架,它极大地简化了Java应用的数据库操作,提高了开发效率,并提供了高级特性如缓存、事务管理等。通过深入理解和熟练使用Hibernate,开发者可以构建更高效、更易于维护的...
SpringMVC + Spring 3.1.1 + Hibernate 4.1.0 集成是企业级Web应用中常见的技术栈组合,主要用于构建高效、可扩展的后端系统。以下是对这一集成过程中的关键知识点的详细说明: 1. **SpringMVC**:SpringMVC是...
**Hibernate 框架概述** Hibernate 是一个开源的对象关系映射(ORM)框架,它为 Java 开发者提供了一种在 Java 应用程序中管理关系数据库的方式。通过 ORM,Hibernate 可以将 Java 类与数据库表之间的映射关系自动...
《Hibernate4总结文档》 Hibernate4作为一款强大的Java对象关系映射框架,简化了数据库操作,使得开发者可以更专注于业务逻辑而不是数据库层面的细节。本文将深入探讨Hibernate4的配置和使用,帮助开发者更好地理解...
【Hibernate 简单 PPT 总结】 Hibernate 是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作。通过提供一套API和元数据,Hibernate允许开发者将业务对象直接映射到数据库表,从而避免了...
### Hibernate核心概念与面试知识点详解 #### 一、持久化概念 **持久化**是软件开发中的基础概念之一,指...此外,对于面试者而言,熟悉这些概念也能帮助他们更好地准备面试,尤其是在面对关于Hibernate的具体问题时。
**Hibernate学习笔记与总结** Hibernate 是一款开源的对象关系映射(ORM)框架,它为Java开发者提供了一种在关系数据库上操作对象数据的便捷方式。本文将深入探讨Hibernate的核心概念、配置、实体类、映射文件、...
**HIBERNATE技术总结** Hibernate 是一个流行的 Java 应用程序框架,它提供了一种对象关系映射(ORM)解决方案,将数据库操作转化为面向对象的编程。此文档旨在研究和对比 Hibernate 技术的不同方面,帮助开发者更...
**Hibernate核心知识点详解** Hibernate是一款强大的Java对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者可以使用面向对象的方式处理数据库事务。在本文中,我们将深入探讨Hibernate的关键概念、...
【hibernate学习资料大全】 Hibernate 是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。这个压缩包包含了丰富的Hibernate学习资源,旨在帮助开发者深入理解和熟练掌握这一强大的...
【Hibernate 概述】 Hibernate 是一个流行的 ...面试时,除了了解 Hibernate 的基本概念和特点,面试官更希望听到你在实际项目中如何运用 Hibernate,以及遇到的问题和解决方案,体现出你的实践经验和问题解决能力。
**标题:“Hibernate课程的总结”** 在学习Hibernate框架的过程中,我们深入探讨了它在Java企业级应用中的核心地位。Hibernate作为一个强大的对象关系映射(ORM)工具,它简化了数据库与Java对象之间的交互,消除了...
总结起来,Hibernate3是Java开发中的强大工具,它极大地简化了数据库操作,提高了开发效率。理解并熟练掌握Hibernate3的核心概念和使用方法,对于任何Java开发者来说都是必要的技能。在实际项目中,正确配置和使用...
然而,在使用Hibernate时,可能会遇到事务回滚失败的问题,本文将详细介绍该问题的原因和解决方法。 一、问题描述 在使用Hibernate时,可能会遇到以下错误信息: Could not roll back Hibernate transaction; ...
### 关于《Beginning Hibernate: For Hibernate 5》的知识点总结 #### Hibernate 5 概述 - **定义**: Hibernate 是一款流行的开源对象关系映射(ORM)框架,它简化了数据库与 Java 对象之间的交互过程。 - **版本**...