java复习_Java复习

出国留学网计算机等级考试网为大家提供全国计算机等级考试二级Java考点,更多计算机等级考试资讯请关注我们网站的更新!

1.在映射对象之间建立一对多关系one-to-many

1)在一的一方的类中添加集合属性Set

2)在一的一方的映射文件中添加映射

3)使用时,通过对象的getXXX方法获取

2.在映射对象之间建立多对一关系many-to-one

1)在多的一方的类中添加一方类型的属性去掉关联字段的属性

2)在多的一方的映射文件中添加映射

column="user_id">

去掉原有关联字段的映射

3)使用时,通过对象的getXXX方法获取

3.关系使用时的技巧

1)在hbm.xml中利用fetch属性指定抓取方式

a.fetch="join"

采用join表连接方式抓取相关对象.

b.fetch="select"(默认)

采用单独发送一个SQL语句的方式查询相关对象.

注意:在实际开发中,不推荐在hbm.xml中利用fetch属性控制.推荐使用HQL+join fetch方式.参考TestAddress.java的testFetch()方法

2)cascade级联操作

对主对象操作时,相关联的对象属性也执行相同操作.

在hbm.xml中为关联属性添加cascade,可以指定

cascade="save-update":当对主对象执行save和update操作时,相关联的对象属性也执行save和update操作

cascade="delete":当对主对象删除时,相关联的对象属性也执行删除

cascade="all":对save,update,delete操作都支持

注意:级联删除执行的是n+1个delete语句,如果遇到n比较大时,不推荐使用级联,推荐使用删除的HQL.

"delete from Address where userId=30"

3)inverse关系控制

inverse主要用于指定两个对象的关系由哪一方来负责维护.其实就是使用update语句更新user_id字段的值.默认情况下,Hibernate认为关系维护双方负责.

为了程序效率,将关系维护工作交给多的一方处理.即在元素中添加inverse="true"

4)formula子查询映射

将一个子查询结果,映射到一个属性上.参考User.hbm.xml

1.Hibernate框架的特性

1)一级缓存

session对象级别的缓存,利用该session取出的对象会放到缓存中.在后续查询时,首先去缓存中寻找,没有再去数据库寻找.

session缓存区在session关闭后销毁.session复杂维护缓存区中对象的状态.

在使用时,为了更好发挥一级缓存,需要保障同一个线程处理中,使用同一个...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值