加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – JPA如何在@OneToMany关系的列上添加唯一约束,例如在用户

发布时间:2020-12-15 02:51:48 所属栏目:Java 来源:网络整理
导读:我有一个代表网站和类用户的类网站.站点可以有多个用户. class Site { private int site_ID; @OneToMany // with a join table private ListUser users; // ...}class User { private int user_ID; private String name; private String lastname; private S
我有一个代表网站和类用户的类网站.站点可以有多个用户.
class Site {

    private int site_ID;

    @OneToMany // with a join table
    private List<User> users;
    // ...
}

class User {

    private int user_ID;

    private String name;

    private String lastname;

    private String username;

    private String password;

}

我想允许所有网站上存在相同的用户名,但只允许一个网站存在.

Site/User/username
1   /1   /username1
1   /2   /username2
2   /3   /username1

我怎样才能做到这一点?

解决方法

让用户拥有站点参考:
@ManyToOne(optional=false)
private Site site;

现在将约束添加到用户:

@Table(uniqueConstraints = {
    @UniqueConstraint(columnNames = { "username","site" }))
} @Entity
public class User{
// etc
}

您还必须更改站点映射:

@OneToMany(mappedBy="site")
private List<User> users;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读