首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PSQLException:错误:重复的键值违反唯一约束

PSQLException:错误:重复的键值违反唯一约束
EN

Stack Overflow用户
提问于 2018-06-05 03:18:54
回答 1查看 920关注 0票数 0

我有两个实体:UserVideo

User有这样的字段:

代码语言:javascript
复制
@Column(name = "favourite")
@ElementCollection(targetClass = Video.class, fetch = FetchType.EAGER)
@CollectionTable(name = "favourite_videos", joinColumns = @JoinColumn(name = "user_id"))
private Set<Video> favourite;

user可以将视频添加到他的收藏中。但是,当另一个user尝试添加已由 another user添加的user时,会出现错误:

代码语言:javascript
复制
org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "uk_4ai4388fdjwvno9jj7u9x1h9x".
Key (favourite_id)=(17) already exists.

在数据库中,它如下所示:

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-05 03:39:59

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

您可以通过将user_idfavourite_id的组合作为主键来创建复合主键来避免此问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50687404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档