Nhibernate最佳实践(摘自Hibernate中文参考手册最后一章)
2006-03-15 13:08
302 查看
1.设计细颗粒度的持久类并且使用<component>来实现映射
这个意思是将一条记录使用多个子类来拆分,例如,将STREET,SUBURB,STATE,POSTCODE封装成ADDRESS类
2,对持久类声明标识符属性,这个标识符最好自动生成,不涉及到业务逻辑
3,为每一个持久类写一个单独的映射文件
4,将映射文件及映射类放在一个程序集中,尽量从资源中加载映射文件
5,考虑把查询字符串放在程序外面,如果查询中使用非标准SQL函数,把查询字符串放在映射文件中更好
6,使用绑定变量,在查询中,尽量用占位符?来替换变量值,不要使用字符串串接.更好的办法是使用命名参数
7,不要自行管理CONNECTION对象
8,考虑使用自定义用户类型
9,在需要高性能的地方,可以考虑直接使用ADO.NET,但是,请从SESSION中获取CONNECTION对象
10,理解SESSION FLUSH,更行操作频繁的话,会影响性能,因此,可以考虑多步手工FLUSH
11,在三层结构中,考虑使用SAVEORUPDATE,
12,在两层结构中,记得自己关闭SESSION
13,绝对不要在一个SESSION中包含多次业务事务,否则,数据有可能过期失效
14,两层结构中,记住自己关闭SESSION
15,不要把异常看作可恢复的,当异常发生时,记住回滚事务,关闭SESSION.HIBERNATE无法保证内存状态精确的反应持久状态,尤其不能用SESSION.LOAD来判断定个给定标识符的对象实便在数据库中是否存在,应该使用FIND方法来判断
16,对于关联,优先考虑LAZY FETCHING,尽量少用主动外连接抓取.
17,考把HIBERNATE代码从业务逻辑代码中抽象出来
18,不要使用怪异的连接映射,多对多连接用的好的例子相当少见.因为多数情况下,在链接表中需保存额外信息,这种情况下,用两个指向中介类的一对多连接较好,尽量用一对多和多对一
19,不要期望一次就设计好映射关系,应该先设计实体,测试后,逐步重构来实现关系的映射
以上原则,大家可以谈谈对各条的理解和看法
这个意思是将一条记录使用多个子类来拆分,例如,将STREET,SUBURB,STATE,POSTCODE封装成ADDRESS类
2,对持久类声明标识符属性,这个标识符最好自动生成,不涉及到业务逻辑
3,为每一个持久类写一个单独的映射文件
4,将映射文件及映射类放在一个程序集中,尽量从资源中加载映射文件
5,考虑把查询字符串放在程序外面,如果查询中使用非标准SQL函数,把查询字符串放在映射文件中更好
6,使用绑定变量,在查询中,尽量用占位符?来替换变量值,不要使用字符串串接.更好的办法是使用命名参数
7,不要自行管理CONNECTION对象
8,考虑使用自定义用户类型
9,在需要高性能的地方,可以考虑直接使用ADO.NET,但是,请从SESSION中获取CONNECTION对象
10,理解SESSION FLUSH,更行操作频繁的话,会影响性能,因此,可以考虑多步手工FLUSH
11,在三层结构中,考虑使用SAVEORUPDATE,
12,在两层结构中,记得自己关闭SESSION
13,绝对不要在一个SESSION中包含多次业务事务,否则,数据有可能过期失效
14,两层结构中,记住自己关闭SESSION
15,不要把异常看作可恢复的,当异常发生时,记住回滚事务,关闭SESSION.HIBERNATE无法保证内存状态精确的反应持久状态,尤其不能用SESSION.LOAD来判断定个给定标识符的对象实便在数据库中是否存在,应该使用FIND方法来判断
16,对于关联,优先考虑LAZY FETCHING,尽量少用主动外连接抓取.
17,考把HIBERNATE代码从业务逻辑代码中抽象出来
18,不要使用怪异的连接映射,多对多连接用的好的例子相当少见.因为多数情况下,在链接表中需保存额外信息,这种情况下,用两个指向中介类的一对多连接较好,尽量用一对多和多对一
19,不要期望一次就设计好映射关系,应该先设计实体,测试后,逐步重构来实现关系的映射
以上原则,大家可以谈谈对各条的理解和看法
相关文章推荐
- Nhibernate最佳实践(摘自Hibernate中文参考手册最后一章)
- Hibernate reference 3.2.0 ga 正式版中文参考手册
- 下载Hibernate中文参考手册2.1版
- hibernate3最佳实践 (Hibernate参考文档笔记)
- Hibernate 中文参考手册(3)
- 下载Hibernate中文参考手册
- 对象/关系数据库映射基础(Basic O/R Mapping) - Hibernate reference 3.2.0 ga 正式版中文参考手册
- Hibernate参考手册学习与实践:配置
- Hibernate 中文参考手册(4)
- [分享]Hibernate中文参考手册
- Hibernate参考手册学习与实践:持久化类
- 可选的配置属性(Hibernate reference 3.2.0 ga 正式版中文参考手册)
- Java 异常处理的 9 个最佳实践,请参考!
- 关于HIbernate在dao层的最佳实践。
- 重读Hibernate参考手册
- Hibernate二级缓存 ---- 最佳实践
- jQuery中文教程之最佳实践
- Struts2、Spring、Hibernate 高效开发的最佳实践
- ASP.NET&Spring.NET&NHibernate最佳实践(三)——第2章环境准备
- atitit. 统计功能框架的最佳实践(1)---- on hibernate criteria