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

我有一个Site代表网站的Class和一个Class User。A 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

我怎样才能做到这一点?

回答:

让用户拥有一个站点参考:

@ManyToOne(optional=false)

private Site site;

现在将约束添加到用户:

@Table(uniqueConstraints = {

@UniqueConstraint(columnNames = { "username", "site" }))

} @Entity

public class User{

// etc

}

您还必须更改站点映射:

@OneToMany(mappedBy="site")

private List<User> users;

以上是 JPA如何在@OneToMany关系的列上添加唯一约束如用户名 的全部内容, 来源链接: utcz.com/qa/415341.html

回到顶部