gpt4 book ai didi

java - Hibernate用null更新子实体并且不删除,如何强制它?

转载 作者:行者123 更新时间:2023-11-30 04:52:10 24 4
gpt4 key购买 nike

我有一个播放列表实体,它拥有用 CascadeType.All 注释的剪辑集合。虽然实际上是双向关系,但我将其定义为单向以避免过多的级联。因此 Clip 具有 playlistId 整数属性,而不是对播放列表的引用。剪辑被定义为播放列表的一部分,因此没有它就无法存在。因此,数据库中的“Playlist_ID”列也被定义为非空,并且 getPlayListId() 也被定义为非空。我读到,如果我从集合中删除项目,级联会将其视为关系删除,而不是实体删除。就我而言,这是一个问题,因为级联尝试将 Playlist_ID 列设置为 null 并导致违反约束。

我想要代码:
playlist.getClips().remove(0); dao.update(播放列表)
将删除该剪辑。有什么办法可以做到吗?

最佳答案

您应该使用 orphanRemoval:

@Entity
public class Playlist {

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
private List<Clip> clips;

}

关于java - Hibernate用null更新子实体并且不删除,如何强制它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9619080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com