package com.syzton.sunread.model.security;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.syzton.sunread.model.common.AbstractEntity;
import com.syzton.sunread.model.user.User;
@Entity
@JsonIgnoreProperties(value = { "creationTime"})
public class Role extends AbstractEntity implements Serializable{
private static final long serialVersionUID = -7699561423592269380L;
public static final int MAX_LENGTH_DESCRIPTION = 500;
public static final int MAX_LENGTH_NAME = 32;
public Role(){
}
public Role(String name){
this.name = name;
this.desc = name;
}
@Column(name = "rolename",nullable = false,length = MAX_LENGTH_NAME )
private String name;
@Column(name = "description", nullable = true, length = MAX_LENGTH_DESCRIPTION)
private String desc;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "user_role", joinColumns = { @JoinColumn(name = "role_id") }, inverseJoinColumns = { @JoinColumn(name = "user_id") })
private List<User> users;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
@Override
public boolean equals(Object obj) {
if(!(obj instanceof Role) ){
return false;
}
Role role2 = (Role)obj;
if(role2.getName()==null){
return false;
}
if(role2.getName().equals(this.getName())){
return true;
}else{
return false;
}
}
}