hinernate 基础

2011-6-25 关联关系、集合映射

(一)One2one

1)        主对象不存在,从对象是没有办法保存的

 

2)        可以单独对主对象保存时可以的

 

3)        查询主对象时会用连接表一次性查询出两种表的记录,与多对一【2次查询】不同;查询从对象时,现查从对象,然后再用连接表

4)        Hibernate只依赖于映射文件进行工作的

 

(二)效率问题

多对多,一对多在效率上有问题:如果多的一端,数据量很多,不要采用,数据量小的时候才采用;多对一用的多

 

(三)集合映射setlist区别

Set:没有次序,不允许重复

List:有序,允许重复,会在库中新增一列来记住插入的顺序,取出的顺序和插入的一样;顺序没有什么意义,采用bag 不会有多余的列,不会保证顺序,在javabean中对应的是list

 

(四)集合选择

绝大部门采用set,配置简单,不允许重复满足需要;如果保证顺序,采用list,绝大部门不需要保存顺序,如果想采用list有不需保证顺序就用bag(在java中用list,配置文件中用bag);map使用较少,看是否需要键值对的方式;数据对增加、减少元素不方便【数据越界,尺寸自己掌握】

注意:在java中定义集合时采用SetList等接口,因为hibernate重写了java集合类,可以实现懒加载【继承了Set等集合类】

 

(五)级联 cascade【两个对象间的关系时】

Cascade一般取值为“save-update”,当要选delete要慎重;在many2manymany2one中不设置级联,在one2oneone2many中设置

 

问题:1 级联保存的效率怎么样?

 

猜你喜欢

转载自helloworlda.iteye.com/blog/1105591