/* * 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 com.pepe.jpa.entities; import controller.util.DigestUtil; import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; import java.util.Date; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; 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.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; /** * * @author Junior Cabal */ @Entity @Table(name = "usuario") @XmlRootElement @NamedQueries({ @NamedQuery(name = "Usuario.findAll", query = "SELECT u FROM Usuario u"), @NamedQuery(name = "Usuario.findByIdUsuario", query = "SELECT u FROM Usuario u WHERE u.idUsuario = :idUsuario"), @NamedQuery(name = "Usuario.findByNumeroDocumento", query = "SELECT u FROM Usuario u WHERE u.numeroDocumento = :numeroDocumento"), @NamedQuery(name = "Usuario.findByNombre1", query = "SELECT u FROM Usuario u WHERE u.nombre1 = :nombre1"), @NamedQuery(name = "Usuario.findByNombre2", query = "SELECT u FROM Usuario u WHERE u.nombre2 = :nombre2"), @NamedQuery(name = "Usuario.findByApellido1", query = "SELECT u FROM Usuario u WHERE u.apellido1 = :apellido1"), @NamedQuery(name = "Usuario.findByApellido2", query = "SELECT u FROM Usuario u WHERE u.apellido2 = :apellido2"), @NamedQuery(name = "Usuario.findByTelefono", query = "SELECT u FROM Usuario u WHERE u.telefono = :telefono"), @NamedQuery(name = "Usuario.findByCorreo1", query = "SELECT u FROM Usuario u WHERE u.correo1 = :correo1"), @NamedQuery(name = "Usuario.findByCorreo2", query = "SELECT u FROM Usuario u WHERE u.correo2 = :correo2"), @NamedQuery(name = "Usuario.findByDireccion", query = "SELECT u FROM Usuario u WHERE u.direccion = :direccion"), @NamedQuery(name = "Usuario.findByEstado", query = "SELECT u FROM Usuario u WHERE u.estado = :estado"), @NamedQuery(name = "Usuario.findByPassword", query = "SELECT u FROM Usuario u WHERE u.password = :password"), @NamedQuery(name = "Usuario.findByFechaExpedicion", query = "SELECT u FROM Usuario u WHERE u.fechaExpedicion = :fechaExpedicion"), @NamedQuery(name = "Usuario.findByTelefono2", query = "SELECT u FROM Usuario u WHERE u.telefono2 = :telefono2"), @NamedQuery(name = "Usuario.findByTelefono3", query = "SELECT u FROM Usuario u WHERE u.telefono3 = :telefono3")}) public class Usuario implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "id_usuario") private Integer idUsuario; @Basic(optional = false) @NotNull @Size(min = 1, max = 15) @Column(name = "numero_documento") private String numeroDocumento; @Basic(optional = false) @NotNull @Size(min = 1, max = 45) @Column(name = "nombre_1") private String nombre1; @Size(max = 45) @Column(name = "nombre_2") private String nombre2; @Basic(optional = false) @NotNull @Size(min = 1, max = 45) @Column(name = "apellido_1") private String apellido1; @Size(max = 45) @Column(name = "apellido_2") private String apellido2; @Basic(optional = false) @NotNull @Size(min = 1, max = 45) @Column(name = "telefono") private String telefono; @Basic(optional = false) @NotNull @Size(min = 1, max = 45) @Column(name = "correo_1") private String correo1; @Size(max = 45) @Column(name = "correo_2") private String correo2; @Basic(optional = false) @NotNull @Size(min = 1, max = 45) @Column(name = "direccion") private String direccion; @Basic(optional = false) @NotNull @Column(name = "estado") private boolean estado; @Basic(optional = false) @NotNull @Size(min = 1, max = 65) @Column(name = "password") private String password; @Basic(optional = false) @NotNull @Column(name = "fecha_expedicion") @Temporal(TemporalType.DATE) private Date fechaExpedicion; @Size(max = 10) @Column(name = "telefono_2") private String telefono2; @Size(max = 10) @Column(name = "telefono_3") private String telefono3; @JoinTable(name = "rol_has_usuario", joinColumns = { @JoinColumn(name = "id_usuario", referencedColumnName = "id_usuario")}, inverseJoinColumns = { @JoinColumn(name = "id_rol", referencedColumnName = "id_rol")}) @ManyToMany private List<Rol> rolList; @ManyToMany(mappedBy = "usuarioList") private List<Revision> revisionList; @ManyToMany(mappedBy = "usuarioList") private List<CentroFormacion> centroFormacionList; @ManyToMany(mappedBy = "usuarioList") private List<Ciudad> ciudadList; @ManyToMany(mappedBy = "usuarioList") private List<Area> areaList; @ManyToMany(mappedBy = "usuarioList") private List<ActividadAprendizaje> actividadAprendizajeList; @OneToMany(cascade = CascadeType.ALL, mappedBy = "idUsuario") private List<Programador> programadorList; @JoinColumn(name = "id_tipo_documento", referencedColumnName = "id_tipo_documento") @ManyToOne(optional = false) private TipoDocumento idTipoDocumento; @JoinColumn(name = "id_caracterizacion", referencedColumnName = "id_caracterizacion") @ManyToOne private Caracterizacion idCaracterizacion; @JoinColumn(name = "id_desercion", referencedColumnName = "id_desercion") @ManyToOne private Desercion idDesercion; @JoinColumn(name = "id_estilo_aprendizaje", referencedColumnName = "id_estilo_aprendizaje") @ManyToOne private EstiloAprendizaje idEstiloAprendizaje; @JoinColumn(name = "id_genero", referencedColumnName = "id_genero") @ManyToOne(optional = false) private Genero idGenero; @JoinColumn(name = "id_libreta_militar", referencedColumnName = "id_libreta_militar") @ManyToOne private LibretaMilitar idLibretaMilitar; @JoinColumn(name = "id_tipo_sangre", referencedColumnName = "id_tipo_sangre") @ManyToOne(optional = false) private TipoSangre idTipoSangre; @JoinColumn(name = "id_tipo_vocero", referencedColumnName = "id_tipo_vocero") @ManyToOne private TipoVocero idTipoVocero; @JoinColumn(name = "id_eps", referencedColumnName = "id_eps") @ManyToOne(optional = false) private Eps idEps; @JoinColumn(name = "id_especialidad", referencedColumnName = "id_especialidad") @ManyToOne private Especialidad idEspecialidad; @JoinColumn(name = "id_etapa_practica", referencedColumnName = "id_etapa_practica") @ManyToOne private EtapaPractica idEtapaPractica; @JoinColumn(name = "id_tipo_contrato", referencedColumnName = "id_tipo_contrato") @ManyToOne private TipoContrato idTipoContrato; @OneToMany(cascade = CascadeType.ALL, mappedBy = "usuario") private List<UsuarioHasFicha> usuarioHasFichaList; @OneToMany(cascade = CascadeType.ALL, mappedBy = "idUsuario") private List<Seguimiento> seguimientoList; public Usuario() { } public Usuario(Integer idUsuario) { this.idUsuario = idUsuario; } public Usuario(Integer idUsuario, String numeroDocumento, String nombre1, String apellido1, String telefono, String correo1, String direccion, boolean estado, String password, Date fechaExpedicion) { this.idUsuario = idUsuario; this.numeroDocumento = numeroDocumento; this.nombre1 = nombre1; this.apellido1 = apellido1; this.telefono = telefono; this.correo1 = correo1; this.direccion = direccion; this.estado = estado; this.password = password; this.fechaExpedicion = fechaExpedicion; } public Integer getIdUsuario() { return idUsuario; } public void setIdUsuario(Integer idUsuario) { this.idUsuario = idUsuario; } public String getNumeroDocumento() { return numeroDocumento; } public void setNumeroDocumento(String numeroDocumento) { this.numeroDocumento = numeroDocumento; } public String getNombre1() { return nombre1; } public void setNombre1(String nombre1) { this.nombre1 = nombre1; } public String getNombre2() { return nombre2; } public void setNombre2(String nombre2) { this.nombre2 = nombre2; } public String getApellido1() { return apellido1; } public void setApellido1(String apellido1) { this.apellido1 = apellido1; } public String getApellido2() { return apellido2; } public void setApellido2(String apellido2) { this.apellido2 = apellido2; } public String getTelefono() { return telefono; } public void setTelefono(String telefono) { this.telefono = telefono; } public String getCorreo1() { return correo1; } public void setCorreo1(String correo1) { this.correo1 = correo1; } public String getCorreo2() { return correo2; } public void setCorreo2(String correo2) { this.correo2 = correo2; } public String getDireccion() { return direccion; } public void setDireccion(String direccion) { this.direccion = direccion; } public boolean getEstado() { return estado; } public void setEstado(boolean estado) { this.estado = estado; } public String getPassword() { return password; } public void setPassword(String password) { try { this.password = DigestUtil.generateDigest(password); } catch (NoSuchAlgorithmException ex) { Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex); } catch (UnsupportedEncodingException ex) { Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex); } } public Date getFechaExpedicion() { return fechaExpedicion; } public void setFechaExpedicion(Date fechaExpedicion) { this.fechaExpedicion = fechaExpedicion; } public String getTelefono2() { return telefono2; } public void setTelefono2(String telefono2) { this.telefono2 = telefono2; } public String getTelefono3() { return telefono3; } public void setTelefono3(String telefono3) { this.telefono3 = telefono3; } @XmlTransient public List<Revision> getRevisionList() { return revisionList; } public void setRevisionList(List<Revision> revisionList) { this.revisionList = revisionList; } @XmlTransient public List<CentroFormacion> getCentroFormacionList() { return centroFormacionList; } public void setCentroFormacionList(List<CentroFormacion> centroFormacionList) { this.centroFormacionList = centroFormacionList; } @XmlTransient public List<Rol> getRolList() { return rolList; } public void setRolList(List<Rol> rolList) { this.rolList = rolList; } @XmlTransient public List<Ciudad> getCiudadList() { return ciudadList; } public void setCiudadList(List<Ciudad> ciudadList) { this.ciudadList = ciudadList; } @XmlTransient public List<Area> getAreaList() { return areaList; } public void setAreaList(List<Area> areaList) { this.areaList = areaList; } @XmlTransient public List<ActividadAprendizaje> getActividadAprendizajeList() { return actividadAprendizajeList; } public void setActividadAprendizajeList(List<ActividadAprendizaje> actividadAprendizajeList) { this.actividadAprendizajeList = actividadAprendizajeList; } @XmlTransient public List<Programador> getProgramadorList() { return programadorList; } public void setProgramadorList(List<Programador> programadorList) { this.programadorList = programadorList; } public TipoDocumento getIdTipoDocumento() { return idTipoDocumento; } public void setIdTipoDocumento(TipoDocumento idTipoDocumento) { this.idTipoDocumento = idTipoDocumento; } public Caracterizacion getIdCaracterizacion() { return idCaracterizacion; } public void setIdCaracterizacion(Caracterizacion idCaracterizacion) { this.idCaracterizacion = idCaracterizacion; } public Desercion getIdDesercion() { return idDesercion; } public void setIdDesercion(Desercion idDesercion) { this.idDesercion = idDesercion; } public EstiloAprendizaje getIdEstiloAprendizaje() { return idEstiloAprendizaje; } public void setIdEstiloAprendizaje(EstiloAprendizaje idEstiloAprendizaje) { this.idEstiloAprendizaje = idEstiloAprendizaje; } public Genero getIdGenero() { return idGenero; } public void setIdGenero(Genero idGenero) { this.idGenero = idGenero; } public LibretaMilitar getIdLibretaMilitar() { return idLibretaMilitar; } public void setIdLibretaMilitar(LibretaMilitar idLibretaMilitar) { this.idLibretaMilitar = idLibretaMilitar; } public TipoSangre getIdTipoSangre() { return idTipoSangre; } public void setIdTipoSangre(TipoSangre idTipoSangre) { this.idTipoSangre = idTipoSangre; } public TipoVocero getIdTipoVocero() { return idTipoVocero; } public void setIdTipoVocero(TipoVocero idTipoVocero) { this.idTipoVocero = idTipoVocero; } public Eps getIdEps() { return idEps; } public void setIdEps(Eps idEps) { this.idEps = idEps; } public Especialidad getIdEspecialidad() { return idEspecialidad; } public void setIdEspecialidad(Especialidad idEspecialidad) { this.idEspecialidad = idEspecialidad; } public EtapaPractica getIdEtapaPractica() { return idEtapaPractica; } public void setIdEtapaPractica(EtapaPractica idEtapaPractica) { this.idEtapaPractica = idEtapaPractica; } public TipoContrato getIdTipoContrato() { return idTipoContrato; } public void setIdTipoContrato(TipoContrato idTipoContrato) { this.idTipoContrato = idTipoContrato; } @XmlTransient public List<UsuarioHasFicha> getUsuarioHasFichaList() { return usuarioHasFichaList; } public void setUsuarioHasFichaList(List<UsuarioHasFicha> usuarioHasFichaList) { this.usuarioHasFichaList = usuarioHasFichaList; } @XmlTransient public List<Seguimiento> getSeguimientoList() { return seguimientoList; } public void setSeguimientoList(List<Seguimiento> seguimientoList) { this.seguimientoList = seguimientoList; } @Override public int hashCode() { int hash = 0; hash += (idUsuario != null ? idUsuario.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 Usuario)) { return false; } Usuario other = (Usuario) object; if ((this.idUsuario == null && other.idUsuario != null) || (this.idUsuario != null && !this.idUsuario.equals(other.idUsuario))) { return false; } return true; } @Override public String toString() { return getNombre1()+" "+getApellido1(); } }