开发者社区> 问答> 正文

Hibernate中many to one 的cascade属性

网上看了说,在多对一关系中,在多的一方的映射文件中的many-to-one上设置cascade=“all”可以在保存一个子类对象时,自动级联保存子类对象中的父类对象至数据库,而不用显示地保存或更新父类对象,
可是我自己试验了,发现如果这个子类对象中的父类对象的是新建的,与数据库没有对应,会报外键异常,如果与数据库是对应的,会执行更新操作,,,
这让我很迷惑,这级联到底是怎么弄的,自己试验可以自动更新,却不能自动保存,而这个列子说可以自动保存???

希望来个明白人帮我摆脱思想的泥潭,太痛苦了!!!

展开
收起
云栖技术 2016-06-02 14:38:47 2165 0
1 条回答
写回答
取消 提交回答
  • 社区爱好者,专为云栖社区服务!

    元素的cascade属性表明操作是否从父对象级联到被关联的对象, 它的取得可以是以下几种:
    none:在保存,删除或修改当前对象时,不对其附属对象(关联对象)进行级联操作,它是默认值。
    save-update:在保存,更新当前对象时,级联保存,更新附属对象(临时对象、游离对象)。
    delete:在删除当前对象时,级联删除附属对象。
    all:所有情况下均进行级联操作,即包含save-update和delete操作。

    2019-07-17 19:24:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载