package bce.server.entities; import java.io.Serializable; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; /** * BCE用户的持久化类 * * @author robins * */ @Entity @Table(name = "BCE_USER") public class PersistentUser implements Serializable { private static final long serialVersionUID = 9220004511179825925L; /** * 用于Servlet中request对象中标识登录用户的key */ public final static String ATTRIBUTE_KEY = "loginedUser"; /** * 数据库自动分配的用户ID */ @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "USER_ID") private Integer userId; /** * 用户注册时使用的用户名,用户名不得重复 */ @Column(nullable = false, name = "USER_NAME") private String userName; /** * 用户输入的,他认为的密码的摘要值 * 用SHA-1摘要,再用16进制表示为String形式,长度为40字节 * 服务器端只需维护该摘要值,“密码”由用户维护 */ @Column(nullable = false, name = "PASSWORD", length = 40) private String password; /** * 用户email地址 */ @Column(nullable = false, name = "EMAIL") private String email; /** * 用户注册时间 */ @Column(nullable = false, name = "REG_DATE") @Temporal(TemporalType.TIMESTAMP) private Date regDate; public PersistentUser() {} 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 String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Date getRegDate() { return regDate; } public void setRegDate(Date regDate) { this.regDate = regDate; } /* * (non-Javadoc) * @see java.lang.Object#hashCode() */ @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((email == null) ? 0 : email.hashCode()); result = prime * result + ((password == null) ? 0 : password.hashCode()); result = prime * result + ((regDate == null) ? 0 : regDate.hashCode()); result = prime * result + ((userId == null) ? 0 : userId.hashCode()); result = prime * result + ((userName == null) ? 0 : userName.hashCode()); return result; } /* * (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; PersistentUser other = (PersistentUser) obj; if (email == null) { if (other.email != null) return false; } else if (!email.equals(other.email)) return false; if (password == null) { if (other.password != null) return false; } else if (!password.equals(other.password)) return false; if (regDate == null) { if (other.regDate != null) return false; } else if (!regDate.equals(other.regDate)) return false; if (userId == null) { if (other.userId != null) return false; } else if (!userId.equals(other.userId)) return false; if (userName == null) { if (other.userName != null) return false; } else if (!userName.equals(other.userName)) return false; return true; } /* * (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return "PersistentUser [userId=" + userId + ", userName=" + userName + ", password=" + password + ", email=" + email + ", regDate=" + regDate + "]"; } }