package com.kingschan.blog.po; // default package import java.sql.Timestamp; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.UniqueConstraint; import org.hibernate.annotations.GenericGenerator; import org.springframework.beans.BeanUtils; import com.kingschan.blog.common.bean.convert.BeanConvert; @Entity @Table(name = "blog_user", catalog = "blog", uniqueConstraints = @UniqueConstraint(columnNames = "user_name")) public class User implements java.io.Serializable, BeanConvert { // Fields private static final long serialVersionUID = 1L; private String id; private String userName; private String userPsw; private Boolean userSex; private String userScreenName; private String userEmail; private Short userState; private Timestamp userDatetime; private Timestamp userLastlogin; private Boolean userEmailActivate; private Long sinaUid; private String sinaToken; private Long sinaExpireIn; private String sinaProfileUrl; private String userLevel; private String userProfileImg; private String userUrl; private Set<Category> categories = new HashSet<Category>(0); private Set<Article> articles = new HashSet<Article>(0); private Set<WebSite> webSites = new HashSet<WebSite>(0); // Constructors /** default constructor */ public User() { } /** minimal constructor */ public User(String userName, String userPsw, Boolean userSex, Short userState, Timestamp userDatetime) { this.userName = userName; this.userPsw = userPsw; this.userSex = userSex; this.userState = userState; this.userDatetime = userDatetime; } /** full constructor */ public User(String userName, String userPsw, Boolean userSex, String userScreenName, String userEmail, Short userState, Timestamp userDatetime, Timestamp userLastlogin, Boolean userEmailActivate, Long sinaUid, String sinaToken, Long sinaExpireIn, String sinaProfileUrl, String userLevel, Set<Category> categories, Set<Article> articles, Set<WebSite> webSites) { this.userName = userName; this.userPsw = userPsw; this.userSex = userSex; this.userScreenName = userScreenName; this.userEmail = userEmail; this.userState = userState; this.userDatetime = userDatetime; this.userLastlogin = userLastlogin; this.userEmailActivate = userEmailActivate; this.sinaUid = sinaUid; this.sinaToken = sinaToken; this.sinaExpireIn = sinaExpireIn; this.sinaProfileUrl = sinaProfileUrl; this.userLevel = userLevel; this.categories = categories; this.articles = articles; this.webSites = webSites; } // Property accessors @GenericGenerator(name = "generator", strategy = "uuid.hex") @Id @GeneratedValue(generator = "generator") @Column(name = "id", unique = true, nullable = false, length = 32) public String getId() { return this.id; } public void setId(String id) { this.id = id; } @Column(name = "user_name", unique = true, nullable = false, length = 10) public String getUserName() { return this.userName; } public void setUserName(String userName) { this.userName = userName; } @Column(name = "user_psw", nullable = false, length = 32) public String getUserPsw() { return this.userPsw; } public void setUserPsw(String userPsw) { this.userPsw = userPsw; } @Column(name = "user_sex", nullable = false) public Boolean getUserSex() { return this.userSex; } public void setUserSex(Boolean userSex) { this.userSex = userSex; } @Column(name = "user_screen_name", length = 50) public String getUserScreenName() { return userScreenName; } public void setUserScreenName(String userScreenName) { this.userScreenName = userScreenName; } @Column(name = "user_email", length = 32) public String getUserEmail() { return this.userEmail; } public void setUserEmail(String userEmail) { this.userEmail = userEmail; } @Column(name = "user_state", nullable = false) public Short getUserState() { return this.userState; } public void setUserState(Short userState) { this.userState = userState; } @Column(name = "user_datetime", nullable = false, length = 19) public Timestamp getUserDatetime() { return this.userDatetime; } public void setUserDatetime(Timestamp userDatetime) { this.userDatetime = userDatetime; } @Column(name = "user_lastlogin", length = 19) public Timestamp getUserLastlogin() { return this.userLastlogin; } public void setUserLastlogin(Timestamp userLastlogin) { this.userLastlogin = userLastlogin; } @Column(name = "user_email_activate") public Boolean getUserEmailActivate() { return null == this.userEmailActivate ? false : this.userEmailActivate; } public void setUserEmailActivate(Boolean userEmailActivate) { this.userEmailActivate = userEmailActivate; } @Column(name = "sina_uid") public Long getSinaUid() { return this.sinaUid; } public void setSinaUid(Long sinaUid) { this.sinaUid = sinaUid; } @Column(name = "sina_token", length = 50) public String getSinaToken() { return this.sinaToken; } public void setSinaToken(String sinaToken) { this.sinaToken = sinaToken; } @Column(name = "sina_expire_in") public Long getSinaExpireIn() { return this.sinaExpireIn; } public void setSinaExpireIn(Long sinaExpireIn) { this.sinaExpireIn = sinaExpireIn; } @Column(name = "sina_profile_url", length = 50) public String getSinaProfileUrl() { return sinaProfileUrl; } public void setSinaProfileUrl(String sinaProfileUrl) { this.sinaProfileUrl = sinaProfileUrl; } @Column(name = "user_level", length = 10) public String getUserLevel() { return this.userLevel; } public void setUserLevel(String userLevel) { this.userLevel = userLevel; } @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "user") public Set<Category> getCategories() { return this.categories; } public void setCategories(Set<Category> categories) { this.categories = categories; } @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "user") public Set<Article> getArticles() { return this.articles; } public void setArticles(Set<Article> articles) { this.articles = articles; } @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "user") public Set<WebSite> getWebSites() { return this.webSites; } public void setWebSites(Set<WebSite> webSites) { this.webSites = webSites; } @Override public <UserVo> UserVo po2vo(UserVo obj) throws Exception { BeanUtils.copyProperties(this, obj); return obj; } @Column(name = "user_profile_img", length = 300) public String getUserProfileImg() { return userProfileImg; } public void setUserProfileImg(String userProfileImg) { this.userProfileImg = userProfileImg; } @Column(name = "user_url", length = 50) public String getUserUrl() { return userUrl; } public void setUserUrl(String userUrl) { this.userUrl = userUrl; } }