package org.tests.model.basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import java.util.ArrayList;
import java.util.List;
@Entity
@Table(name = "muser")
public class MUser {
@Id
Integer userid;
String userName;
// Cascade remove will delete from intersection table
// but will not delete the actual Roles
@ManyToMany(mappedBy = "users", cascade = CascadeType.ALL)
List<MRole> roles;
@ManyToOne
private MUserType userType;
public MUser() {
}
public MUser(List<MRole> startRoles) {
this.roles.addAll(startRoles);
}
public MUser(String userName) {
this.userName = userName;
}
public Integer getUserid() {
return userid;
}
public void setUserid(Integer userid) {
this.userid = userid;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public List<MRole> getRoles() {
return roles;
}
public void setRoles(List<MRole> roles) {
this.roles = roles;
}
public void addRole(MRole role) {
if (roles == null) {
roles = new ArrayList<>();
}
roles.add(role);
}
public MUserType getUserType() {
return userType;
}
public void setUserType(MUserType userType) {
this.userType = userType;
}
}