标签:绑定 cas 存在 highlight ade nat 缓存 sql 关系
级联添加操作值操作当前数据时.将关联数据也进行操作,就是保存当前数据的同事也将保存和修改关联的数据
首先绑定对象间的关系;
`将多方对象添加到一方对象的集合中
tm.getStudents().add(sm1); tm.getStudents().add(sm2);
设置多方的关联对象为一方对象,
sm1.setTeacher(tm); sm2.setTeacher(tm);
然后添加老师对象.
s.save(tm);
设置老师对象时,级联关联对象
<set name="students cascade="save-update >
eg:设置类set元素中的cascade="save-update" 属性后,当保存对应的老师对象时,会检测变量为student的集合中是否保存有数据, 如果有数据,将其中的对象进行级联操作. 如过被级联的对象时TO,只想save操作,吐过被级联的对象时PO,执行update操作.
备注:
1, 当前进进设置老师对学生的级联, 因此保存老师时, 可以级联学生对象,但是保存学生是不能级联老师对象,,可以通过设置many-to-one元素的cascade属性完成学生到老师的级联.
2,如果未设置级联操作,而保存具有关联关系的老师对象, 灰关联顺势对象跑出异常;
重点:
1,如果当前老师对象TO,而是PO,也可以记性上述操作,但是由于有PO 对象一级缓存中已经存在有数据,因此执行的是update语句
2, 如果老师对象关联的学生对象不是TO,而是PO,被级联后,执行的不是save操作,而是update操作;
3;如果老师对象在数据库中已经存在有关联的学生数据,而操作是老师数据使用DO数据,将会产生关系的变化,
4.级联可以设置多方,但是一般开发设置一方即可;
标签:绑定 cas 存在 highlight ade nat 缓存 sql 关系
原文地址:http://www.cnblogs.com/czb2580/p/6443304.html