Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Expenses; import java.io.Serializable; import java.util.Collection; import javax.persistence.Basic; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; import com.google.common.base.Charsets; import com.google.common.hash.Hashing; /** * * @author Peter */ @Entity @Table(name = "users") @XmlRootElement @NamedQueries({ @NamedQuery(name = "Users.findAll", query = "SELECT u FROM Users u"), @NamedQuery(name = "Users.findById", query = "SELECT u FROM Users u WHERE u.id = :id"), @NamedQuery(name = "Users.findByFlag", query = "SELECT u FROM Users u WHERE u.flag = :flag"), @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.findByFirstName", query = "SELECT u FROM Users u WHERE u.firstName = :firstName"), @NamedQuery(name = "Users.findByLastName", query = "SELECT u FROM Users u WHERE u.lastName = :lastName") }) public class Users implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "id") private Integer id; @Basic(optional = false) @NotNull @Column(name = "Flag") private int flag; @Size(max = 50) @Column(name = "Username") private String username; @Size(max = 255) @Column(name = "Password") private String password; @Size(max = 50) @Column(name = "FirstName") private String firstName; @Size(max = 50) @Column(name = "LastName") private String lastName; @OneToMany(cascade = CascadeType.ALL, mappedBy = "userid") private Collection<Operations> operationsCollection; public Users() { } public Users(Integer id) { this.id = id; } public Users(Integer id, int flag) { this.id = id; this.flag = flag; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public int getFlag() { return flag; } public void setFlag(int flag) { this.flag = flag; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { String hash = Hashing.sha256().hashString(password, Charsets.UTF_8).toString(); this.password = hash; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } @XmlTransient public Collection<Operations> getOperationsCollection() { return operationsCollection; } public void setOperationsCollection(Collection<Operations> operationsCollection) { this.operationsCollection = operationsCollection; } @Override public int hashCode() { int hash = 0; hash += (id != null ? id.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.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { return false; } return true; } @Override public String toString() { return "Expenses.Users[ id=" + id + " ]"; } }