解决实体类或属性名与数据库关键字冲突
除了在hbm.xml中加column属性或table属性来改变列名或数据库表名字外,如果移植数据后不准改数据库属性名的话还可以在column属性或table属性加上反引号把它当做字符串来处理。
cascade和inverse
Casade用来说明当对主对象进行某种操作时是否对其关联的从对象也作类似的操作,常用的cascade:none,all,save-update ,delete, lock,refresh,evict,replicate,persist,merge,delete-orphan(one-to-many) 。一般对many-to-one,many-to-many不设置级联,在<one-to-one>和<one-to-many>中设置级联。
inverse表“是否放弃维护关联关系”(在Java里两个对象产生关联时,对数据库表的影响),在one-to-many和many-to-many的集合定义中使用,inverse=”true”表示该对象不维护关联关系;该属性的值一般在使用有序集合时设置成false(注意hibernate的缺省值是false)。one-to-many维护关联关系就是更新外键。many-to-many维护关联关系就是在中间表增减记录。
注: 配置成one-to-one的对象不维护关联关系
上次提过的inverse,在list,array等有序的容器里面是不能使用的,很简单,都放弃多关系的维护了,还会在乎元素的顺序么。
还有一点,在多的一端,不允许放弃对关系的维护。
多对多关系的维护,双方处于平等地位,那么谁来维护都是可以的,注意多对多关系的维护是在中间表插入一条新的记录,如果双方都维护,那么就不是重复update语句的问题了,就会产生插入异常。
generator子标签常用class属性
increment Hibernate内部自己做累加,而不是数据库中做累加。所以集群下不要使用。
indentity 数据库标示符自增长
squence Oracle常用
hilo 高低位 数据库保存高位字段,Hibernate累加地位字段,新插入数据由这两个字段组成,不会重复。
uuid 生成主键不用访问数据库,Hibernate生成,插入效率很高,可移植性好,而像indentity,squence插入时都要先访问数据库。主键string类型,查询时候效率不高。
native 根据数据库底层能力选择identity squence hilo
assigned 手工分配主键
foreigh 外键引用作为主键
N+1次查询和懒加载
1.用Query.iterator可能会有N+1次查询。
2.懒加载时获取关联对象。
3.如果打开对查询的缓存即使用list也可能有N+1次查询。
分享到:
相关推荐
**Hibernate基础知识积累** Hibernate是一个强大的Java持久化框架,它简化了数据库操作,使得开发者能够更加专注于业务逻辑,而不是底层的数据存取细节。本篇将深入探讨Hibernate的核心概念、配置、对象关系映射...
10. **最佳实践与实战经验**:分享作者在实际项目中积累的Hibernate使用经验和最佳实践,帮助读者避免常见错误,提高代码质量。 通过阅读《Hibernate in Action》中文版,Java开发者不仅可以掌握Hibernate的使用...
这暗示了源码阅读是需要耐心和毅力的过程,但最终能够带来深厚的技术积累。 关于"java源码"的标签,表明我们要研究的是用Java语言编写的代码,这包括类、接口、方法等Java编程元素。Hibernate的源码是用Java实现的...
8. **最佳实践**:分享了一些在实际开发过程中积累的最佳实践案例。 ### 结论 综上所述,这份Hibernate中文参考文档是一份非常有价值的资料,对于想要学习和使用Hibernate框架的开发者来说尤其有用。通过阅读这份...
这两份笔记可能由经验丰富的开发者整理,包含他们在学习和使用Hibernate过程中积累的实用技巧和常见问题解决方案。这些个人经验往往能提供独特的视角和实战经验,对于解决实际问题非常有价值。 通过这些资料的学习...
**J2EE复习积累(六)-Hibernate4.2** 在J2EE开发中,Hibernate作为一款流行的ORM(对象关系映射)框架,极大地简化了Java应用程序与数据库之间的交互。本篇复习将聚焦于Hibernate 4.2版本,该版本在前一版本的基础上...
**hibernate入门** Hibernate 是一个强大的Java持久化框架,它简化了数据库操作,使得开发者无需直接编写SQL语句即可实现对象与关系数据库...随着经验的积累,你将能够熟练地运用Hibernate解决更复杂的数据访问问题。
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许Java开发者使用面向对象的方式来操作数据库。...随着经验的积累,逐渐深入学习高级特性,如查询优化、缓存和事务管理,以提升项目的效率和质量。
Hibernate 3.2是Java开发中的一个关键框架,主要用于简化对象关系映射(ORM)的任务。这个核心包包含了实现ORM功能所需的所有基本组件,使得开发者能够将Java类与数据库表进行映射,从而在Java应用中操作数据库变得...
理解并熟练应用Hibernate Annotation API需要通过阅读官方文档、参考书籍以及实际项目开发来积累经验。可以尝试创建简单的CRUD操作,逐步学习和掌握各种注解的用法。 总结,Hibernate Annotation API使得ORM配置...
通过这个教程,学习者可以逐步掌握Hibernate的基本使用方法,并积累实际项目经验。 5. ** SINOLIFE-TRA-HIBERNATE.ppt** 这很可能是一份PPT形式的培训资料,可能包含更直观的图表和案例,便于理解。可能涵盖了...
MyEclipse是一个集成开发环境(IDE)...- 记录和分享遇到的问题及解决方案,有助于个人经验的积累,也可以帮助到其他开发者。 以上是关于在MyEclipse中使用Hibernate进行反向工程的知识点,希望能够为开发者提供帮助。
“我是在开发的过程中积累的,很多是跟别人要的”表明这些文件是经过实践检验的,可能包含了不同来源、不同版本的Hibernate组件,适用于各种情况。“希望能帮到系伙伴们.不够的请联系我”表示提供者愿意帮助解决可能...
压缩包中的"chapter2"可能是包含示例代码或者教程的目录,通过这些实例,你可以动手实践上述理论知识,加深理解并积累经验。 总之,Hibernate 2.1作为早期的ORM框架版本,尽管功能相对有限,但足以让我们掌握ORM的...
【标题】:“Hibernate人生中第一个使用MyEclipse成功及完美程序”揭示了初学者如何在MyEclipse集成开发...同时,随着经验的积累,可以逐渐接触更高级的主题,如缓存机制、级联操作、懒加载等,进一步提升开发效率。
### Hibernate 使用手册知识点详解 #### 一、简介 Hibernate 是一款免费开源的对象关系映射 (ORM) 框架,它允许开发人员将 Java 应用程序中...对于进一步深入学习,建议查阅官方文档和相关教程,不断实践和积累经验。
在我一年半的开发经验中,我逐渐积累了对Hibernate的深入理解和实用技巧,现在就与大家分享一下这些关键知识点。 首先,我们要理解Hibernate的核心概念:实体(Entity)、持久化(Persistence)、会话(Session)和...
【标题】"struts+spring+hibernate租房项目"是一个基于JavaEE技术栈的实战应用,它结合了...通过这个项目,开发者可以深入理解JavaEE应用的开发流程,提升综合运用三大框架的能力,为今后的项目开发积累宝贵经验。
随着经验的积累,可以进一步研究性能调优和第三方集成,以提高项目的稳定性和效率。 总结,Hibernate API和文档是Java开发者的宝贵资源,它们不仅提供了丰富的功能,还有详尽的指导。通过深入学习和实践,开发者...
《Struts2+Hibernate学生选课管理系统详解》 在当今的教育信息化进程中,学生选课管理系统扮演着...通过这个系统,我们可以深入理解Web开发中数据库设计、MVC架构和ORM技术的实际应用,为今后的项目开发积累宝贵经验。