hibernate中有10种不同的级联,可以用与多对一关联和集合,默认的级联为none,如上篇中的Sister和Person的对应关系为多对一(
)其中cascade使用默认的值即为none这时
,只是把sister 对象持久化到数据库中,而person对象不会被持久化(运行结果为:
).如果将其配置该为
xml 代码
- <many-to-one name="person" column="person_id" class="Person"/>
java 代码
- session.save(sister);
java 代码
- Hibernate: insert into mldn.sister (name, person_id) values (?, ?)
java 代码
- "person" column="person_id" class="Person" cascade="save-update"/>
这session.save(sister);时结果为
- Hibernate: insert into mldn.person (name, password) values (?, ?)
- Hibernate: insert into mldn.sister (name, person_id) values (?, ?)
其中几种最常用的级联为
1,all:所有操作都传递到子实体-
-保存,更新,删除.
2,sav-update:保存和更新.
3,delete:删除.
4,delete-orphan:所有操作都传递到子实体,并删除不再与对象关联的对象.
hibernate不将级联传递到数据库它只在内部管理级联
sql 代码