gpt4 book ai didi

java - JPA 如何为 @OneToMany 关系的列添加唯一约束,如用户名

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:49:45 26 4
gpt4 key购买 nike

我有一个代表网站的 Site 类和一个 User 类。一个 Site 可以有多个 User

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

我该怎么做?

最佳答案

让用户有一个Site引用:

@ManyToOne(optional=false)
private Site site;

现在给用户添加约束:

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

您还必须更改 Site 映射:

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

关于java - JPA 如何为 @OneToMany 关系的列添加唯一约束,如用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5260895/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com