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/username1 /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