使用Hibernate开发租房系统(6)

关联级别:
(1)一对多:默认加载方式为懒加载 lazy=true
lazy="false":加载主对象时 会直接将其关联对象一并查询出来
lazy="extra":懒加载 聪明的懒加载 当我调用集合中的某些属性 而不是将集合中所有的内容迭代出来
发出一条合适的sql语句
(2)多对一:默认加载方式为懒加载 lazy=proxy 依靠代理对象将目标对象取出
lazy="false":加载主对象时 会直接将其关联对象一并查询出来
lazy="no-proxy":懒加载 直接访问目标对象

openSessionInView
(1)解决session对象的分配问题 1次请求 只会存在一个session
(2)解决事务
(3)懒加载和session息息相关 完美解决
缺陷:事务管理并不完善

cascade
使用一方的集合装载所有的对象
在对应的set bag标签上 赋予cascade

单向一对多的配置:
①编写多方实体类
②编写一方实体类 (在一方实体类中 增加一个多方的集合对象)
③编写多方的实体映射文件
④编写一方的实体映射文件(在文件中增加 一个标签set)
⑤将2个实体映射文件注册到hibernate.cfg.xml
ps:如果想想把set 换成List
a.将实体类中的set换成List
b.将配置文件中的set标签换成bag标签

单项多对一关联
①编写一方的实体类
②编写多方的实体类 (将多方实体类中原有的外键属性 更改成1方的对象类型)
③编写一方的实体映射文件
④编写多方的实体映射文件(将原来的外键的配置属性 更改成many-to-one)
⑤将两个实体映射文件注册到hibernate.cfg.xml

posted on 2017-03-31 00:50  凌雨轩林  阅读(270)  评论(0编辑  收藏  举报

导航