package com.hongqiang.shop.modules.entity;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.persistence.CollectionTable;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;
@Entity
@Table(name="hq_role")
public class Role extends BaseEntity
{
private static final long serialVersionUID = -6614052029623997372L;
private String name;
private Boolean isSystem;
private String description;
private List<String> authorities = new ArrayList<String>();
private Set<Admin> admins = new HashSet<Admin>();
@NotEmpty
@Length(max=200)
@Column(nullable=false)
public String getName()
{
return this.name;
}
public void setName(String name)
{
this.name = name;
}
@Column(nullable=false, updatable=false)
public Boolean getIsSystem()
{
return this.isSystem;
}
public void setIsSystem(Boolean isSystem)
{
this.isSystem = isSystem;
}
@Length(max=200)
public String getDescription()
{
return this.description;
}
public void setDescription(String description)
{
this.description = description;
}
@ElementCollection
@CollectionTable(name="hq_role_authority")
public List<String> getAuthorities()
{
return this.authorities;
}
public void setAuthorities(List<String> authorities)
{
this.authorities = authorities;
}
@ManyToMany(mappedBy="roles", fetch=FetchType.LAZY)
public Set<Admin> getAdmins()
{
return this.admins;
}
public void setAdmins(Set<Admin> admins)
{
this.admins = admins;
}
}