网上看了说,在多对一关系中,在多的一方的映射文件中的many-to-one上设置cascade=“all”可以在保存一个子类对象时,自动级联保存子类对象中的父类对象至数据库,而不用显示地保存或更新父类对象,
可是我自己试验了,发现如果这个子类对象中的父类对象的是新建的,与数据库没有对应,会报外键异常,如果与数据库是对应的,会执行更新操作,,,
这让我很迷惑,这级联到底是怎么弄的,自己试验可以自动更新,却不能自动保存,而这个列子说可以自动保存???
列子
希望来个明白人帮我摆脱思想的泥潭,太痛苦了!!!
元素的cascade属性表明操作是否从父对象级联到被关联的对象, 它的取得可以是以下几种:
none:在保存,删除或修改当前对象时,不对其附属对象(关联对象)进行级联操作,它是默认值。
save-update:在保存,更新当前对象时,级联保存,更新附属对象(临时对象、游离对象)。
delete:在删除当前对象时,级联删除附属对象。
all:所有情况下均进行级联操作,即包含save......
答案就在这里:Hibernate many-to-one cascade
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?
表生成的hibernate 的映射文件中属性many-to-one配置看下