Skip to content

Instantly share code, notes, and snippets.

@smithh032772
Created November 23, 2012 11:58
Show Gist options
  • Save smithh032772/4135311 to your computer and use it in GitHub Desktop.
Save smithh032772/4135311 to your computer and use it in GitHub Desktop.
Users table structure and entity class
CREATE TABLE users (
user_name VARCHAR(128) NOT NULL,
password VARCHAR(128) NOT NULL,
theme VARCHAR(25),
active CHAR(1) DEFAULT 'Y',
active_status_changed_dt TIMESTAMP,
created_dt TIMESTAMP DEFAULT CURRENT TIMESTAMP,
last_login_dt TIMESTAMP,
password_last_changed_dt TIMESTAMP,
CONSTRAINT users_pk PRIMARY KEY ( user_name )
);
/*
* 2012-07-19
* users table: last_logout_dt, logged_in_via_mobile; assign default values
*
*/
ALTER TABLE users ADD COLUMN last_logout_dt TIMESTAMP;
ALTER TABLE users ADD COLUMN logged_in_via_mobile CHAR(1) DEFAULT 'N';
UPDATE users SET logged_in_via_mobile = 'N';
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package jpa.entities;
import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
/**
*
* @author Administrator
*/
@Entity
@Table(name = "USERS")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Users.findAll", query = "SELECT u FROM Users u"),
@NamedQuery(name = "Users.findByUserName", query = "SELECT u FROM Users u WHERE u.userName = :userName"),
@NamedQuery(name = "Users.findByPassword", query = "SELECT u FROM Users u WHERE u.password = :password"),
@NamedQuery(name = "Users.findByTheme", query = "SELECT u FROM Users u WHERE u.theme = :theme"),
@NamedQuery(name = "Users.findByActive", query = "SELECT u FROM Users u WHERE u.active = :active"),
@NamedQuery(name = "Users.findByActiveStatusChangedDt", query = "SELECT u FROM Users u WHERE u.activeStatusChangedDt = :activeStatusChangedDt"),
@NamedQuery(name = "Users.findByCreatedDt", query = "SELECT u FROM Users u WHERE u.createdDt = :createdDt"),
@NamedQuery(name = "Users.findByLastLoginDt", query = "SELECT u FROM Users u WHERE u.lastLoginDt = :lastLoginDt"),
@NamedQuery(name = "Users.findByLastLogoutDt", query = "SELECT u FROM Users u WHERE u.lastLogoutDt = :lastLogoutDt"),
@NamedQuery(name = "Users.findByLoggedInViaMobile", query = "SELECT u FROM Users u WHERE u.loggedInViaMobile = :loggedInViaMobile"),
@NamedQuery(name = "Users.findByPasswordLastChangedDt", query = "SELECT u FROM Users u WHERE u.passwordLastChangedDt = :passwordLastChangedDt")})
public class Users implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 128)
@Column(name = "USER_NAME")
private String userName;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 128)
@Column(name = "PASSWORD")
private String password;
@Size(min = 1, max = 25)
@Column(name = "THEME")
private String theme;
@Column(name = "ACTIVE")
private Character active;
@Column(name = "ACTIVE_STATUS_CHANGED_DT")
@Temporal(TemporalType.TIMESTAMP)
private Date activeStatusChangedDt;
@Column(name = "CREATED_DT")
@Temporal(TemporalType.TIMESTAMP)
private Date createdDt;
@Column(name = "LAST_LOGIN_DT")
@Temporal(TemporalType.TIMESTAMP)
private Date lastLoginDt;
@Column(name = "LAST_LOGOUT_DT")
@Temporal(TemporalType.TIMESTAMP)
private Date lastLogoutDt;
@Column(name = "LOGGED_IN_VIA_MOBILE")
private Character loggedInViaMobile;
@Column(name = "PASSWORD_LAST_CHANGED_DT")
@Temporal(TemporalType.TIMESTAMP)
private Date passwordLastChangedDt;
@ManyToMany(mappedBy = "users")
private Collection<EmailAddress> emailAddresses;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
private Collection<UserRole> userRoles;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "userName")
private Collection<AuditTrail> auditTrails;
public Users() {
}
public Users(String userName) {
this.userName = userName;
}
public Users(String userName, String password) {
this.userName = userName;
this.password = password;
}
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 getTheme() {
return theme;
}
public void setTheme(String theme) {
this.theme = theme;
}
public Character getActive() {
return active;
}
public void setActive(Character active) {
this.active = active;
}
public Date getActiveStatusChangedDt() {
return activeStatusChangedDt;
}
public void setActiveStatusChangedDt(Date activeStatusChangedDt) {
this.activeStatusChangedDt = activeStatusChangedDt;
}
public Date getCreatedDt() {
return createdDt;
}
public void setCreatedDt(Date createdDt) {
this.createdDt = createdDt;
}
public Date getLastLoginDt() {
return lastLoginDt;
}
public void setLastLoginDt(Date lastLoginDt) {
this.lastLoginDt = lastLoginDt;
}
public Date getLastLogoutDt() {
return lastLogoutDt;
}
public void setLastLogoutDt(Date lastLogoutDt) {
this.lastLogoutDt = lastLogoutDt;
}
public Character getLoggedInViaMobile() {
return loggedInViaMobile;
}
public void setLoggedInViaMobile(Character loggedInViaMobile) {
this.loggedInViaMobile = loggedInViaMobile;
}
public Date getPasswordLastChangedDt() {
return passwordLastChangedDt;
}
public void setPasswordLastChangedDt(Date passwordLastChangedDt) {
this.passwordLastChangedDt = passwordLastChangedDt;
}
@XmlTransient
public Collection<EmailAddress> getEmailAddresses() {
return emailAddresses;
}
public void setEmailAddresses(Collection<EmailAddress> emailAddresses) {
this.emailAddresses = emailAddresses;
}
public void addEmailAddress(EmailAddress emailAddress) {
emailAddresses.add(emailAddress);
}
public void removeEmailAddress(EmailAddress emailAddress) {
emailAddresses.remove(emailAddress);
}
@XmlTransient
public Collection<UserRole> getUserRoles() {
return userRoles;
}
public void setUserRoles(Collection<UserRole> userRoles) {
this.userRoles = userRoles;
}
public void addUserRole(UserRole userRole) {
userRoles.add(userRole);
}
public void removeUserRole(UserRole userRole) {
userRoles.remove(userRole);
}
@XmlTransient
public Collection<AuditTrail> getAuditTrails() {
return auditTrails;
}
public void setAuditTrails(Collection<AuditTrail> auditTrails) {
this.auditTrails = auditTrails;
}
public void addAuditTrail(AuditTrail auditTrail) {
auditTrails.add(auditTrail);
}
public void removeAuditTrail(AuditTrail auditTrail) {
auditTrails.remove(auditTrail);
}
@Override
public int hashCode() {
int hash = 0;
hash += (userName != null ? userName.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Users)) {
return false;
}
Users other = (Users) object;
if ((this.userName == null && other.userName != null) || (this.userName != null && !this.userName.equals(other.userName))) {
return false;
}
return true;
}
@Override
public String toString() {
return "jpa.entities.Users[ userName=" + userName + " ]";
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment