JPA 中如何设置唯一索引

发布于 2021-11-09 02:01:37 字数 80 浏览 855 评论 4

JPA 中设置唯一索引的方式:

@Table(name = "table", uniqueConstraints = {

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

醉生梦死 2021-11-10 23:18:12

把你的具体映射贴出来吧,才好判断。

可是我不能没有你 2021-11-10 22:43:50

惭愧啊, 恕我愚钝,  还是没太理解。 

@ManyToOne

 @JoinColumn(name="column3")   

1. 说明 many 这边的表(假设表名ManyTable )中用 column3 字段作为与One(假设表名OneTable)一边的关联。  如果不指定他会自动生成一个类似 one_id 的字段。 对不?

2.  表ManyTable 对应的实体Bean 中不需要额外的字段“column3” 。  对不? 

3.  我知道 column3 在ManyTable表中肯定不能有唯一约束,  但是我想要的是 ManyTable表中的其他2个字段 column1 + column2 和 column3 一起作为唯一约束。 这个约束放到实际的关系表中没有矛盾吧?   

JPA 怎么能做到,或者没有必要? 或者我的理解还是有问题?

 

望请各位 不吝赐教 !!  

成熟稳重的好男人 2021-11-10 20:16:32

你这个约束有矛盾,@ManyToOne,多对一的情况,你又是用@JoinColumn关联的,本来就不能约束唯一。

@JoinColumn(unique=true)。这样就变成一对一了,或者@OneToOne,将前面的@Table的column3去掉。

如果是要多对一,你这个唯一约束就是矛盾的,出错正常。

少女情怀诗 2021-11-10 06:11:34

这种情况,就放弃这个索引么? 有其他办法么?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文