gpt4 book ai didi

java - PSQL异常 : ERROR: duplicate key value violates unique constraint

转载 作者:行者123 更新时间:2023-11-29 14:31:46 24 4
gpt4 key购买 nike

我有两个实体:UserVideo

User 有这样的字段:

@Column(name = "favourite")
@ElementCollection(targetClass = Video.class, fetch = FetchType.EAGER)
@CollectionTable(name = "favourite_videos", joinColumns = @JoinColumn(name = "user_id"))
private Set<Video> favourite;

用户 可以将视频添加到他的 Collection 中。但是,当另一个 user 尝试添加 video 时,该 video 已经被 another user 添加了,会发生错误:

org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "uk_4ai4388fdjwvno9jj7u9x1h9x".
Key (favourite_id)=(17) already exists.

在数据库中它看起来像:

enter image description here

我的意思是,具有其他 ID 的用户不能添加 ID 为 17 和 18 的视频,或任何其他已被其他用户添加的视频 ID。问题是如何确保用户可以添加其他用户已有的视频?我希望 Video 实体不只属于一个用户。

最佳答案

在您的表 favourite_videos 中,主键是 favourite_id。因此,在这种情况下,不能有另一个元组具有在前一个元组中使用的 favourite_id。 (一个元组是一个记录(一行))

您可以通过将 user_idfavourite_id 的组合作为主键来制作复合主键,从而避免此问题。

关于java - PSQL异常 : ERROR: duplicate key value violates unique constraint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50687404/

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