Hibernate 3.0要点.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hibernate 3.0要点

Hibernate 3.0要点 罗小平 2009-3 本文适用于Spring+Hibernate 3.0应用环境。 1. 配置要点 1.1 Hibernate配置 在这里仅说明几个重要的配置项。 选项 含义 默认 推荐 说明 hibernate.jdbc.fetch_size JDBC批量抓取记录数 10 25-50 相当于设置Query/ Criteria.setFetchSize() hibernate.jdbc.batch_size JDBC2批量插入/更新/删除记录数上限 5 10-50 hibernate.max_fetch_depth 一对一和多对一映射中,实体加载的最大深度 1 0-3 0表示不抓取相关实体 hibernate.default_batch_fetch_size 加载相关联的实体集合时,每次加载的相关实体个数 1 4、8、16 建议使用2的倍数 1.2 class 选项 含义 默认 推荐 说明 dynamic-update Update-SQL中是否仅包含变动的字段 false true 1、若所有字段值均未变动,总不会生成Update-SQL 2、生成的SQL是动态的,缓存中的PreparedStatement命中率降低 dynamic-insert Insert-SQL中是否包含null字段 false true 1、同上2 2、若所有字段均为null值,则全部插入缺省值 mutable 表数据是否更新 true 不需更新的表(如日志表)可设为false 设置为false时,不检查脏数据,可提升性能 lazy 是否延迟加载 true true batch-size 批量查询,用于缓解1+n问题;每次读入的记录数 1 视情况而定 1、小数据量尽可能一次载入 2、大数据量优先考虑在数据库端直接处理,其次才考虑分批载入(同时手工清理缓存,避免内存溢出) 1.3 id中generator class 主键类型 含义 适用范围 推荐 说明 Assigned 主键值由应用给定,无需Hibernate和数据库干预 通用 Y 自然主键 identity 数据库自动生成,无需Hibernate干预 常用于MS SQL Server、MySQL的自增长主键 Y 代理主键 sequence 依赖数据库提供的sequence机制 常用语Oracle的Sequence Y 1、代理主键 2、存在性能问题。每插入一条语句,Hibernate生成select和insert两条语句 native 由Hibernate自动选择 较通用 Y 代理主键 uuid Hibernate自动生成(机制类似GUID) 通用 N 1、代理主键 2、以16/32位长字符串表示,在一些查询中可能有性能问题 1.4 集合映射 集合类型 含义 推荐 说明 set 对应java.util.Set接口,表示一个没有重复元素的集合 是否重复,依据Object.equals()判断 bag 对应的是java.util.Collection接口,表示一个可有重复元素的集合 同上 list 对应java.util.List接口,可有重复元素 1、同上 2、有序(即可通过索引下标访问) map 对应java.util.Map,key值不可重复 array 对应对象数组 N 1.4.1 one-to-one 选项 含义 默认 推荐 说明 cascade 级联操作。 all:所有情况下均进行级联操作。 none:所有情况下均不进行级联操作。 save-update:在执行 save-update 时 进行级联操作。 delete:在执行 delete 时进行级联操作。 none none 级联操作可能带来一些性能和约束违法问题 fetch 子数据的查询。 join:使用外连接。 select:逐条查询。 subselect:使用子查询。 select 试情况而定 1、HQL语句中可通过关键字“fetch”动态指定 2、Query/Criteria中可调用setFetchMode动态设置 lazy 同class true true 1.4.2 one-to-many 选项 含义 默认 推荐 说明 cascade 同one-to-one fetch 同one-to-one lazy 同one-to-one inverse 是否由many方控制关系 false true batch-size 同class 1.4.3 many-to-one 属one-to-many的反向关系,具体可参看相关资料。 1.4.4 总结 (1)尽可能只使用one-to

文档评论(0)

wt60063 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档