比如说我有一门叫“唱片”的课,和一个叫“艺术家”的班级有着多对一的关系。
如果我将级联选项定义为这样:
class Record{
@ManyToOne(cascade = CascadeType.ALL)
private Artist artist;
...
}假设我有一些由我的EntityManager管理的记录,其中一些是相同的艺术家。当我在记录对象上调用、更新、合并、分离、删除等时会发生什么?例如,艺术家会被撤职吗?会被分离吗?如果是的话,引用该艺术家的其他记录类会发生什么情况?
发布于 2013-11-24 22:13:28
由于您配置了与cascade = CascadeType.ALL的关联,在记录上完成的所有操作也将在关联的艺术家上完成。因此,删除记录将移除艺术家。如果另一条记录也引用了同一个艺术家,则如果外键约束异常(如果它们在数据库中正确配置),这将失败。
在ManyToXxx关联上配置这样的级联没有多大意义。
https://stackoverflow.com/questions/20179911
复制相似问题