Hibernate学习45 -- Hibernate最佳实践
2009-12-10 12:28
225 查看
1) 使用Configuration装载映射文件时,不要使用绝对路径装载。最好的方式是通过getResourceAsStream()装载映射文件,这样Hibernate会从classpath中寻找已配置的映射文件。
2) SessionFactory的创建非常消耗资源,整个应用一般只要一个SessionFactory就够了,只有多个数据库的时候才会使用多个SessionFactory。
3) 在整个应用中,Session和事务应该能够统一管理。(Spring为Hibernate提供了非常好的支持)
4) 将所有的集合属性配置设置为懒加载(lazy=”true”)。在hibernate2.x版本中,lazy默认值是“false”,但hibernate3.x已经将lazy的默认改为“true”了。
5) 在定义关联关系时,集合首选Set,如果集合中的实体存在重复,则选择List(在定义配置文件时,可以将List定义为bag),数组的性能最差。
6) 在一对多的双向关联中,一般将集合的inverse属性设置为true,让集合的对方维护关联关系。例如:Group-User,由User来维护Group和User的关联关系。
7) HQL子句本身大小写无关,但是其中出现的类名和属性名必须注意大小写区分。
8) 在非分布式架构中,不需要使用DTO来向上层传输数据。直接使用POJO的Entity就可以了。
9) 如果要精通Hibernate,熟练掌握关系数据库理论和SQL是前提条件。
2) SessionFactory的创建非常消耗资源,整个应用一般只要一个SessionFactory就够了,只有多个数据库的时候才会使用多个SessionFactory。
3) 在整个应用中,Session和事务应该能够统一管理。(Spring为Hibernate提供了非常好的支持)
4) 将所有的集合属性配置设置为懒加载(lazy=”true”)。在hibernate2.x版本中,lazy默认值是“false”,但hibernate3.x已经将lazy的默认改为“true”了。
5) 在定义关联关系时,集合首选Set,如果集合中的实体存在重复,则选择List(在定义配置文件时,可以将List定义为bag),数组的性能最差。
6) 在一对多的双向关联中,一般将集合的inverse属性设置为true,让集合的对方维护关联关系。例如:Group-User,由User来维护Group和User的关联关系。
7) HQL子句本身大小写无关,但是其中出现的类名和属性名必须注意大小写区分。
8) 在非分布式架构中,不需要使用DTO来向上层传输数据。直接使用POJO的Entity就可以了。
9) 如果要精通Hibernate,熟练掌握关系数据库理论和SQL是前提条件。
相关文章推荐
- Spring MVC学习笔记——JSR303介绍及最佳实践
- PHP核心技术与最佳实践学习(一)面向对象
- Hibernate_使用原生态sql&Dto传输&最佳实践_Demo
- Hibernate最佳实践
- Domino 如何整Hibernate最佳实践
- js最佳实践学习记录
- java:log4j学习(3)-转帖:Log4J 最佳实践之全能配置文件
- JavaScript 刚開始学习的人应知的 24 条最佳实践
- Maven学习(十八)-- Maven最佳实践:版本管理
- Web前端优化最佳实践及工具集锦----转载来之于csdn,觉得挺好的,很全面,学习了。
- Hibernate二级缓存 ---- 最佳实践
- OPEN(SAP) UI5 学习入门系列之二: 最佳实践练习(上)
- 《Pro ASP.NET MVC 3 Framework》学习笔记之二十一【Area及URL架构的最佳实践】
- ASP.NET&Spring.NET&NHibernate最佳实践(一)——目录
- ASP.NET&Spring.NET&NHibernate最佳实践(六)——第3章人事子系统(3)
- React + Redux 最佳实践 学习之 redux
- ios蓝牙开发学习笔记(五)与peripheral通信的最佳实践
- ASP.NET&Spring.NET&NHibernate最佳实践(十五)——第4章权限子系统(8)
- ASP.NET&Spring.NET&NHibernate最佳实践(二十二)——第4章权限子系统(15)
- OpenResty 最佳实践学习--实战演习笔记(2)