Hibernate最佳实践(一)

编写细粒度的类并通过<component>标签做映射。
    使用Adress类涵盖street,suburb,state,postcode属性。这样有利于代码重用并能够简化重构。

在持久类中声明identifier属性。
    Hibernate中identifier属性是可选的,但是有很多理由要求我们使用他们。我们推荐使用“合成”主键(即使用自动生成,没有任何业务含义的字段)。

确定自然主键。
    为所有的实例确定自然主键,并将他们映射到<natural-id>标签。实现equals()和hashCode()方法时比较组成自然主键的属性。

将每个类的映射放在自己的文件里。
    不要使用单一的映射文件。com.eg.Foo类的映射放在com/eg/Foo.hbm.xml文件里。这样做在团队开发环境中尤其明智。

将映射文件作为资源加载。
    将映射文件与他们所映射的类部署在一起。

考虑外部查询字符。

    如果你调用了非ANSI标准的SQL函数时这是一个很好的实现。将外部查询字符放在映射文件里能够使你的应用更加方便。

使用约束变量。

    就像在JDBC中一样,用“?”代替非常量。不要在查询中使用字符串拼接来约束变量的值!如果想做的更好,可以考虑在查询中使用命名的参数。

不要管理自己JDBC连接。

    Hibernate由应用管理JDBC连接。这一做法应视为最后手段。如果你不能使用内置的连接,可以考虑自己实现org.hibernate.connection.ConnectionProvider类。

考虑使用自定义类型。

    假设你有一个Java类型,比如库中的类,它需要被持久化但是不能提供作为组件的映射访问。你可以考虑实现org.hibernate.UserType。这个方法可以让你在自己实现的代码和Hibernate类型中自由转换。

在瓶颈点手工编写JDBC代码。

    在系统性能的关键点,很多操作直接用JDBC可能更有效。但是请在你明确知道的瓶颈点使用JDBC,并且不要以为直接使用JDBC必然更快。如果你直接使用JDBC,那么打开一个Hibernate的Session连接用它的JDBC连接是值得的。这样,你仍可以应用相同的事务策略和底层连接供应商。

了解Session类的刷新。

    Session不定时的与数据库同步持久类的状态。如果这个过程发生的太频繁可能影响实现。你有时可能需要通过禁用自动刷新来减少不必要的刷新,甚至需要在特定交易中改变查询和其他操作的顺序。

在三层架构中考虑使用超类。 

阅读更多
想对作者说点什么? 我来说一句

Hibernate最佳实践

2011年02月25日 345KB 下载

Hibernate

2011年11月08日 569KB 下载

培训教程-hibernate ppt doc

2006年02月22日 253KB 下载

Hibernate培训

2011年09月09日 566KB 下载

hibernata 讲解

2010年04月21日 569KB 下载

没有更多推荐了,返回首页

不良信息举报

Hibernate最佳实践(一)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭