| Blog信息 |
|
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7649467 建立时间:2006年5月29日 |

| |
|
[Hibernate]hibernate一对多例子-已更新(二) 软件技术
lhwork 发表于 2007/1/7 14:04:29 |
先看由满江红翻译团队(RedSaga Translate Team)翻译的一对多配置说明 然后在看例子 一对多关联(One-to-many Associations)
一对多关联
通过外键
连接两个类对应的表,而没有中间集合表。 这个关系模型失去了一些Java集合的语义:
一个被包含的实体的实例只能被包含在一个集合的实例中
一个被包含的实体的实例只能对应于集合索引的一个值中
|
|
|
[Hibernate]hibernate一对一例子-已更新(一) 软件技术
lhwork 发表于 2007/1/7 14:03:26 |
先看由满江红翻译团队(RedSaga Translate Team)翻译的一对一配置说明 一对一
持久化对象之间一对一的关联关系是通过one-to-one元素定义的。
<one-to-one name="propertyName" (1) class="ClassName" (2) cascade="cascade_style" |
|
|
[Hibernate]根据 criteria 自动运算总行数 软件技术
lhwork 发表于 2006/12/29 16:26:12 |
/** * 根据 DetachedCriteria 得 到 分页结果, 运行期间会根据 criteria 自动运算总行数, 注意如果 criteria 中 set 了 Projection, 则返回结果 List 中为 Projection 指定类型 * @param hibernateTemplate the hibernateTemplate * @param criteria the criteria * @param firstResult the first result row number * @param maxResults the max result * @return the pagination support * @throws org.springframework.dao.DataAccessException in case of Hibernate errors */ public static PaginationSupport |
|
|
[Hibernate]Hiberante的二级缓存配置JBossCache集群(转载) 软件技术
lhwork 发表于 2006/12/28 12:17:32 |
为了使用Hiberante的二级缓存支持集群,可以选择OSCache和JBossCache等,这里我们选择了JBossCache. JBossCache可以在这里找到http://www.jboss.org/developers/projects/jboss/cache/。 1.Hibernate的配置 (1)在hibernate.cfg.xml中加入下在面的语句,如果有使用了其它的cache请注掉 <property name="hibernate.cache.provider_class">net.sf.hibernate.cache.TreeCacheProvider</property> (2)在hibernate的映射文件 |
|
|
[Hibernate]Hibernate程序性能优化的考虑要点 软件技术
lhwork 发表于 2006/12/27 13:26:11 |
本文依照HIBERNATE帮助文档,一些网络书籍及项目经验整理而成,只提供要点和思路,具体做法可以留言探讨,或是找一些更详细更有针对性的资料。
初用HIBERNATE的人也许都遇到过性能问题,实现同一功能,用HIBERNATE与用JDBC性能相差十几倍很正常,如果不及早调整,很可能影响整个项目的进度。
大体上,对于HIBERNATE性能调优的主要考虑点如下:
Ø 数据库设计调整
Ø HQL优化
Ø API的正确使用(如根据不同的业务类型选用不同的集合及查询API)
Ø 主配置参数(日志,查询缓存,fetch_size, batch_size等)
Ø 映射文件优化(ID生成策略,二级缓存,延迟加载,关联优化)
Ø 一级缓存的管理
Ø 针对二级缓存, |
|
|
[Hibernate]hibernate二级缓存攻略 Ehcache(from javaEyes) 软件技术
lhwork 发表于 2006/12/27 11:52:47 |
很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。 我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的,请原谅我的顽固不化。
hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效了。
二级缓存是SessionFactory级别的全局缓存,它底下可以使用不同的缓存类库,比如ehcache、oscache等,需要设置hibernate.cache.provider_class,我们这里用ehcache,在2.1中就是 hibernate.cache.provider_class=net.sf.hibernate.cache.EhCacheProvider 如果使用查询缓存,加上 hibernate.cache.use_query_cache=true
|
|
|
[Hibernate]精通Hibernate映射继承关系之六 软件技术
lhwork 发表于 2006/12/22 17:15:13 |
Company与Employee类之间为一对多多态关联关系,如果继承关系树的根类对应一个表,或者每个类对应一个表,那么就能映射Company类的
employees集合。本节介绍如何映射多对一多态关联。如图14-11所示,ClassD与ClassA为多对一多态关联关系。
图14-11 ClassD与ClassA为多对一多态关联关系
ClassA、ClassB和ClassC构成了一棵继承关系树,如果继承关系树的根类对应一个表,或者每个类对应一个表,那么可以按以下方式映射ClassD的a属性:
|
|
[Hibernate]精通Hibernate映射继承关系之五 软件技术
lhwork 发表于 2006/12/22 17:13:33 |
本章介绍的三种映射方式各有优缺点,表14-1对这三种映射方式做了比较。
表14-1 比较三种映射方式
如果不需要支持多态查询和多态关联,可以采用每个具体类对应一个表的映
射方式,如果需要支持多态查询和多态关联,并且子类包含的属性不多,可以采用根类对应一个表的映射方式,如果需要支持多态查询和多态关联,并且子类包含的
属性很多,可以采用每个类对应一个表的映射方式。如果继承关系树中包含接口,可以把它当做抽象类来处理。
图14-9显示了一棵复杂的继承关系树,其中DOClass类为抽象类,其他均为具体类。
|
| 阅读全文(1922) | 回复(0) | 编辑 | 精华 | 删除 |
| |
|
[Hibernate]精通Hibernate映射继承关系之四 软件技术
lhwork 发表于 2006/12/22 17:13:04 |
在这种映射方式下,继承关系树的每个类以及接口都对应一个表。在本例中,需要创建EMPLOYEES、HE和SE表。
如图14-6所
示,EMPLOYEES表仅包含和Employee类的属性对应的字段,HE表仅包含和HourlyEmployee类的属性对应的字段,SE表仅包含和
SalariedEmployee类的属性对应的字段。此外,HE表和SE表都以EMPLOYEE_ID字段作为主键,该字段还同时作为外键参照
EMPLOYEES表。
图14-6 继承关系树的每个类对应一个表
|
| 阅读全文(2217) | 回复(0) | 编辑 | 精华 | 删除 |
| |
|
站点首页 | 联系我们 | 博客注册 | 博客登陆
Sponsored By W3CHINA W3CHINA Blog 0.8 Processed in 0.109 second(s), page refreshed 144801088 times. 《全国人大常委会关于维护互联网安全的决定》 《计算机信息网络国际联网安全保护管理办法》 苏ICP备05006046号
|