Cascade:用来说明当对主对象进行某种操作时是否对其关联的从对象也作类似的操作,常用的Cascade取值由:none,all,save-update,delete,lock,refresh,evict,replicate,persist,merge,
delete-orphan(one-to-many)。一般以many-to-one,many-to-many不设置级联,在one-to-one和one-to-many不设置级联,在one-to-one和one-to-many中设置级联。
说明:none:表示没有任何操作级联(默认值)
All:表示所有的操作都级联
Save-update:表示在save/update/save-update时产生级联
Delete:表示删除时级联
若要多个操作都产生级联则:可以用,分开如:save,delete
Delete-orphan表示若在从对象中把对应的主对象的值修改为null则删除从对象。通常在one-one中使用。
一般以many-to-one,many-to-many不设置级联,在one-to-one和one-to-many不设置级联,在one-to-one和one-to-many中设置save-update级联。
Inverse表示:“是否放弃维护关联关系”(在Java里面个对象产生关联时,对数据库的影响),在one-to-many和many-to-many的集合定义中使用,inverse=“true”表示该对象不维护关联关系;该属性的值一般在使用有序集合时设置成false(注意hibernate的缺省值是false).
One-to-many维护关联关系就是更新外键.many-to-many维护关联关系就是在中间表增减记录.