package io.robe.hibernate.test.entity; import io.robe.common.service.search.Relation; import io.robe.common.service.search.SearchFrom; import io.robe.common.service.search.SearchIgnore; import io.robe.hibernate.entity.BaseEntity; import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotEmpty; import javax.persistence.*; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; import java.util.Date; import java.util.LinkedList; import java.util.List; import java.util.Set; @Entity @Table public class User extends BaseEntity { @Length(min = 5, max = 50) @NotEmpty @Pattern(regexp = "\\S+@\\S+\\.\\S+") @Column(unique = true, length = 50) private String email; @Length(min = 3, max = 50) @NotEmpty @Column(length = 50, nullable = false) private String name; @NotEmpty @Length(min = 2, max = 50) @Column(length = 50, nullable = false) private String surname; @SearchIgnore @NotEmpty @Column(length = 64, nullable = false) private String password; @NotNull @Column(nullable = false) private boolean active; @Column(nullable = false) private int failCount = 0; @Column private Date lastLoginTime; @Column private Date lastLogoutTime; @SearchIgnore @SearchFrom(entity = Role.class, filter = "name") @Length(min = 32, max = 32) @NotEmpty @Column(length = 32) private String roleOid; @Transient @Relation(name = "roleOid.name") private String roleName; @Transient private String exampleTransient; @ElementCollection @CollectionTable(name="Nicknames", joinColumns=@JoinColumn(name="user_id")) @Column(name="nickname") public Set<String> nickNames; public User(){ } public User(String email, String name, String surname, String password, boolean active, int failCount, Date lastLoginTime, Date lastLogoutTime, String roleOid, String exampleTransient, Set<String> nickNames) { this.email = email; this.name = name; this.surname = surname; this.password = password; this.active = active; this.failCount = failCount; this.lastLoginTime = lastLoginTime; this.lastLogoutTime = lastLogoutTime; this.roleOid = roleOid; this.exampleTransient = exampleTransient; this.nickNames = nickNames; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSurname() { return surname; } public void setSurname(String surname) { this.surname = surname; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getRoleOid() { return roleOid; } public boolean isActive() { return active; } public void setActive(boolean active) { this.active = active; } public Date getLastLoginTime() { return lastLoginTime; } public void setLastLoginTime(Date lastLoginTime) { this.lastLoginTime = lastLoginTime; } public Date getLastLogoutTime() { return lastLogoutTime; } public void setLastLogoutTime(Date lastLogoutTime) { this.lastLogoutTime = lastLogoutTime; } public int getFailCount() { return failCount; } public void setFailCount(int failCount) { this.failCount = failCount; } public void setRoleOid(String roleOid) { this.roleOid = roleOid; } public void setExampleTransient(String exampleTransient) { this.exampleTransient = exampleTransient; } public String getExampleTransient() { return exampleTransient; } public void setNickNames(Set<String> nickNames) { this.nickNames = nickNames; } public Set<String> getNickNames() { return nickNames; } @Override public String toString() { return "User{" + "email='" + email + '\'' + ", name='" + name + '\'' + ", surname='" + surname + '\'' + ", password='" + password + '\'' + ", active=" + active + ", failCount=" + failCount + ", lastLoginTime=" + lastLoginTime + ", lastLogoutTime=" + lastLogoutTime + ", roleOid='" + roleOid + '\'' + ", exampleTransient='" + exampleTransient + '\'' + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof User)) return false; User user = (User) o; if (isActive() != user.isActive()) return false; if (getFailCount() != user.getFailCount()) return false; if (getEmail() != null ? !getEmail().equals(user.getEmail()) : user.getEmail() != null) return false; if (getName() != null ? !getName().equals(user.getName()) : user.getName() != null) return false; if (getSurname() != null ? !getSurname().equals(user.getSurname()) : user.getSurname() != null) return false; if (getPassword() != null ? !getPassword().equals(user.getPassword()) : user.getPassword() != null) return false; if (getLastLoginTime() != null ? !getLastLoginTime().equals(user.getLastLoginTime()) : user.getLastLoginTime() != null) return false; if (getLastLogoutTime() != null ? !getLastLogoutTime().equals(user.getLastLogoutTime()) : user.getLastLogoutTime() != null) return false; if (getRoleOid() != null ? !getRoleOid().equals(user.getRoleOid()) : user.getRoleOid() != null) return false; return getExampleTransient() != null ? getExampleTransient().equals(user.getExampleTransient()) : user.getExampleTransient() == null; } @Override public int hashCode() { int result = getEmail() != null ? getEmail().hashCode() : 0; result = 31 * result + (getName() != null ? getName().hashCode() : 0); result = 31 * result + (getSurname() != null ? getSurname().hashCode() : 0); result = 31 * result + (getPassword() != null ? getPassword().hashCode() : 0); result = 31 * result + (isActive() ? 1 : 0); result = 31 * result + getFailCount(); result = 31 * result + (getLastLoginTime() != null ? getLastLoginTime().hashCode() : 0); result = 31 * result + (getLastLogoutTime() != null ? getLastLogoutTime().hashCode() : 0); result = 31 * result + (getRoleOid() != null ? getRoleOid().hashCode() : 0); result = 31 * result + (getExampleTransient() != null ? getExampleTransient().hashCode() : 0); return result; } }