package org.ccpit.base.user; import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.OneToOne; import org.ccpit.base.modol.BaseEntity; import org.ccpit.base.orgManage.OrgInfo; import org.ccpit.base.role.Role; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import org.hibernate.annotations.Where; import com.fasterxml.jackson.annotation.JsonIgnore; /** * Created by Administrator on 2015/9/2. */ @Entity @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @Where(clause="whetherDelete = 'false'") public class User extends BaseEntity implements IUser,Serializable{ /** * serialVersionUID:TODO(用一句话描述这个变量表示什么). * @since JDK 1.6 */ private static final long serialVersionUID = 1L; /** * 用户名 */ private String username; /** * 密码 */ private String password; /** * 登录名 */ private String loginName; /** * 年龄 */ private Integer age; /** * 性别 */ private String sex; /** * 公司名称 */ private String company; /** * 邮箱 */ private String email; /** * 账号状态 (0 无效 | 1 有效) */ private Integer countStatus; /** * 电话 */ private String telphone; /** * 创建人 */ private String creator; /** * 创建人Id */ private long creatorId; /** * 创建时间 */ private Date createTime; /** * 登录次数 */ private Integer loginCount; /** * 用户类型 (back | front) */ private String userType; @JsonIgnore private Set<Role> roles = new HashSet<Role>(); @JsonIgnore private List<OrgInfo> orgInfo = new ArrayList<OrgInfo>(); @JsonIgnore private UserEmail userEmail; /** * 是否删除 */ private boolean whetherDelete; @Override @Id @GeneratedValue(strategy = GenerationType.AUTO) public long getId() { return super.getId(); } @Override public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String getLoginName() { return loginName; } public void setLoginName(String loginName) { this.loginName = loginName; } @Override public int hashCode() { return ("user"+getId()).hashCode(); } @Override public boolean equals(Object o) { if(o == null){ return false; } if(o == this){ return true; } if(o.getClass() == User.class){ return o.hashCode()==this.hashCode(); } return false; } @ManyToMany(fetch = FetchType.EAGER,cascade = CascadeType.ALL) @JoinTable(name = "user_Roles", joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id")}, inverseJoinColumns = {@JoinColumn(name = "role_id", referencedColumnName ="id")}) public Set<Role> getRoles() { return roles; } //维护端 @ManyToMany(fetch=FetchType.LAZY,cascade = CascadeType.PERSIST,mappedBy="users") public List<OrgInfo> getOrgInfo() { return orgInfo; } public void setOrgInfo(List<OrgInfo> orgInfo) { this.orgInfo = orgInfo; } public void setRoles(Set<Role> roles) { this.roles = roles; } public String getUserType() { return userType; } public void setUserType(String userType) { this.userType = userType; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getCompany() { return company; } public void setCompany(String company) { this.company = company; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Integer getCountStatus() { return countStatus; } public void setCountStatus(Integer countStatus) { this.countStatus = countStatus; } public String getTelphone() { return telphone; } public void setTelphone(String telphone) { this.telphone = telphone; } public String getCreator() { return creator; } public void setCreator(String creator) { this.creator = creator; } public long getCreatorId() { return creatorId; } public void setCreatorId(long creatorId) { this.creatorId = creatorId; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Integer getLoginCount() { return loginCount; } public void setLoginCount(Integer loginCount) { this.loginCount = loginCount; } @OneToOne public UserEmail getUserEmail() { return userEmail; } public void setUserEmail(UserEmail userEmail) { this.userEmail = userEmail; } public boolean isWhetherDelete() { return whetherDelete; } public void setWhetherDelete(boolean whetherDelete) { this.whetherDelete = whetherDelete; } }