hibernate级联操作及缓存
来源:互联网 发布:google play软件下载 编辑:程序博客网 时间:2024/05/18 02:00
1.关联虽然会增加耦合度,但的确起到了简化程序的作用;
如果开始的数据结构基本完全确定,建议采用关联的方式;
如果程序可变性很强,就要慎重考虑了。
2.在使用多对一单向关联时,更新字段时最好应该从多的一端更新;其实是一对一关系,不会造成批量更新。
<many-to-one name="teacher" column="tid" class="calsspath" fetch="select" lazy="false" cascade="save-update"/>
3.在使用一对多单向关联时,应设inverse="true",即执行主表更新时不更新从表;
对于频繁更新的数据表inverse应设为true,在更新时应该尽量避免更新主表。
<set name="students" inverse="true" fetch="select" cascade="save-update" lazy="true">
<key column="teacher_id"/>
<one-to-many class="student classpath"/>
</set>
4.一对多双向关联时,设inverse="save-update"同时更新多表记录;
双向关联时,不能同时都指定cascade="save-update";
一对多双向关联其实就是2,3的结合。
5.多对多单向关联,需要第三个辅助表studentTeacher来实现:
<set name="teachers" table="studentsTeacher">
<key column="student_id"/>
<many-to-many column="teachar_id" class="teacher classpath"/>
</set>
6.多对多双向关联时,应该在inverse="false"一端保存数据才能完整保存;
多对多就是由两个一对多组成的(当然需要中间表的辅助)。
7.session一级缓存:由hibernate管理,存在于session生命周期;
sessionFactory二级缓存:可以人为配置,存在于sessionFactory生命周期;
8.二级缓存是一个插件,hibernate默认使用的是EhCache,Hibernate3.0已经包含此插件,将etc目录下的ehcache.xml拷贝到src 目录下配置即可生效。修改hibernate配置文件:
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
来自:http://hi.baidu.com/fly%5Fshark/blog/item/aef5d8089b6c96c73ac76343.html
- hibernate级联操作及缓存
- Hibernate 级联操作cascade及inverse
- hibernate常见级联操作异常及解决方法
- HIBERNATE中级联操作
- hibernate 级联操作
- hibernate的级联操作
- Hibernate级联操作Cascade
- hibernate级联操作详解
- Hibernate 级联操作 cascade
- hibernate 之 级联操作
- Hibernate级联操作
- Hibernate级联操作 注解
- hibernate的级联操作
- hibernate的级联操作
- hibernate级联操作
- hibernate级联删除操作
- 关于 Hibernate 级联操作
- hibernate级联操作详解
- reactos操作系统实现(79)
- Hibernate清理缓存
- ExtJS学习笔记(七) 使用树控件TreeNode
- Hibernate查询方法与缓存的关系
- Hibernate查询缓存
- hibernate级联操作及缓存
- Hibernate缓存何时使用和如何使用
- Hibernate中 一 二级缓存及查询缓存的学习总结
- Hibernate 缓存问题
- Hibernate查询缓存综合
- hibernate一级缓存和二级缓存的区别
- 进入大学应该做的第一件事
- hibernate一级缓存(转)
- [经验随笔]fedora 11安装mplayer之呕心沥血