首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Hibernate应用中的一些经验

2012-11-07 
Hibernate使用中的一些经验在Hibernate3官方文档中有关于Hibernate的最佳实践,并且对二级缓冲等也作了介绍

Hibernate使用中的一些经验
在Hibernate3官方文档中有关于Hibernate的最佳实践,并且对二级缓冲等也作了介绍,这些很多朋友可能已经知道或者关注,我这里分享的主要是一些官方文档或者网上相对讨论比较少的经验。
1、对属性配置项中的update和insert的需要注意,该两项都默认是true,也就是在持久对象时的insert和update sql会包含所有的字段,如果我们开启Hibernate sql日志,就会明显看到这个问题。其实我们往往在update的时候只更新部分数据,有些数据根本不会发生在update阶段。例如createDate之类的内容。所以在配置持久对象的时候我们更多要关注那些字段update需要设置成false。其实比较了解ORM的朋友这是基本注意问题。

<property name="crateTime" type="timestamp" column="create_time" update="false"/>

2、通常希望用Hibernate mapping file来维护数据库ddl的朋友,常常忽略的内容:
2.1 length 如果是varchar类型,最好设置length。
2.2 foreign-key 如果在具有外键引用的地方不设置该项,Hibernate tools将会自动生成一个很不便于维护的constraint名称。主要在<many-to-one>中体现。
2.3 可以通过指定index来对一个或多个属性索引。
2.4 ID生成策略上我们常常遇到无法跨数据库的问题,我这里有个特殊写法能帮助解决如下问题:
       <id name="id" column="id" type="long">            <generator class="native">            <param name="sequence">LMS_S_XX_ID</param>            </generator>        </id>

2.5 hibernate schema update无法实现对索引和Constraint的更新。请注意这点。特别是重命名的话基本无法删除原来的。

今天在重构一个项目代码的时候发现这些问题,希望有参考价值。

热点排行