微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我有一个代表网站和类用户的类网站.站点可以有多个用户.
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;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐