JPA 中如何设置唯一索引
JPA 中设置唯一索引的方式:
@Table(name = "table", uniqueConstraints = {如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
JPA 中设置唯一索引的方式:
@Table(name = "table", uniqueConstraints = {由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
把你的具体映射贴出来吧,才好判断。
惭愧啊, 恕我愚钝, 还是没太理解。
@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 怎么能做到,或者没有必要? 或者我的理解还是有问题?
望请各位 不吝赐教 !!
你这个约束有矛盾,@ManyToOne,多对一的情况,你又是用@JoinColumn关联的,本来就不能约束唯一。
@JoinColumn(unique=true)。这样就变成一对一了,或者@OneToOne,将前面的@Table的column3去掉。
如果是要多对一,你这个唯一约束就是矛盾的,出错正常。
这种情况,就放弃这个索引么? 有其他办法么?