Usuario.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.licensis.notaire.negocio;
import com.licensis.notaire.dto.DtoPersona;
import com.licensis.notaire.dto.DtoUsuario;
import java.io.Serializable;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.persistence.Basic;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.NamedQueries;
import jakarta.persistence.NamedQuery;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.Version;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlTransient;
/**
*
* @author juanca
*/
@Entity
@Table(name = "usuarios")
@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.findByEstado", query = "SELECT u FROM Usuario u WHERE u.estado = :estado"),
@NamedQuery(name = "Usuario.findByFkIdPersona", query = "SELECT u FROM Usuario u WHERE u.fkIdPersona.idPersona = :idPersona")
})
public class Usuario implements Serializable {
@Basic(optional = false)
@Column(name = "version")
@Version
private int version;
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id_usuario")
private Integer idUsuario;
@Basic(optional = false)
@Column(name = "nombre")
private String nombre;
@Basic(optional = false)
@Column(name = "contrasenia")
private String contrasenia;
@Basic(optional = false)
@Column(name = "estado")
private boolean estado;
@Basic(optional = false)
@Column(name = "tipo")
private String tipo;
@JsonIgnore
@OneToMany(cascade = CascadeType.ALL, mappedBy = "fkIdUsuario", fetch = FetchType.LAZY)
private List<RegistroAuditoria> registroAuditoriaList;
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler", "usuariosList", "presupuestosList", "tramiteList", "suplenciaEscribanoList", "suplenciaReemplazadoList"})
@JoinColumn(name = "fk_id_persona", referencedColumnName = "id_persona")
@ManyToOne(optional = true, fetch = FetchType.EAGER)
private Persona fkIdPersona;
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
@JoinColumn(name = "fk_id_rol", referencedColumnName = "id_rol")
@ManyToOne(optional = true, fetch = FetchType.EAGER)
private Rol rol;
public Usuario() {
}
public Usuario(Integer idUsuario) {
this.idUsuario = idUsuario;
}
public Usuario(Integer idUsuario, String nombre, String contrasenia, boolean estado, String tipo) {
this.idUsuario = idUsuario;
this.nombre = nombre;
this.contrasenia = contrasenia;
this.estado = estado;
this.tipo = tipo;
}
public Integer getIdUsuario() {
return idUsuario;
}
public void setIdUsuario(Integer idUsuario) {
this.idUsuario = idUsuario;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
public String getContrasenia() {
return contrasenia;
}
public void setContrasenia(String contrasenia) {
this.contrasenia = contrasenia;
}
public boolean getEstado() {
return estado;
}
public void setEstado(boolean estado) {
this.estado = estado;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
@XmlTransient
@JsonIgnore
public List<RegistroAuditoria> getRegistroAuditoriaList() {
return registroAuditoriaList;
}
public void setRegistroAuditoriaList(List<RegistroAuditoria> registroAuditoriaList) {
this.registroAuditoriaList = registroAuditoriaList;
}
public Persona getFkIdPersona() {
return fkIdPersona;
}
public void setFkIdPersona(Persona fkIdPersona) {
this.fkIdPersona = fkIdPersona;
}
public Rol getRol() {
return rol;
}
public void setRol(Rol rol) {
this.rol = rol;
}
@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 "Usuarios[ version=" + version + " ]"
+ "[ idUsuario=" + idUsuario + " ]"
+ "[ nombre=" + nombre + " ]"
+ "[ tipo=" + tipo + " ] "
+ "[ estado=" + estado + " ]";
}
public void setAtributos(DtoUsuario dtoUsuario) {
// Ref persona de Usuario
Persona miPersona = new Persona();
miPersona.setAtributos(dtoUsuario.getPersonas());
setFkIdPersona(miPersona);
// Atributos usuario
setContrasenia(dtoUsuario.getContrasenia());
;
setEstado(dtoUsuario.isEstado());
setIdUsuario(dtoUsuario.getIdUsuario());
setNombre(dtoUsuario.getNombre());
setTipo(dtoUsuario.getTipo());
if (dtoUsuario.getVersion() != null) {
// Controlo Version Objeto
setVersion(dtoUsuario.getVersion());
}
}
@com.fasterxml.jackson.annotation.JsonIgnore
public DtoUsuario getDto() {
DtoUsuario miDto = new DtoUsuario();
try {
miDto.setContrasenia(contrasenia);
miDto.setEstado(estado);
miDto.setIdUsuario(idUsuario);
miDto.setNombre(nombre);
DtoPersona miDtoPersona = new DtoPersona();
miDtoPersona = this.getFkIdPersona().getDto();
miDto.setPersonas(miDtoPersona);
miDto.setTipo(tipo);
if (rol != null) {
miDto.setRolId(rol.getIdRol());
miDto.setRolNombre(rol.getNombre());
}
// Controlo la version del objeto
miDto.setVersion(version);
} catch (NullPointerException e) {
System.out.println("Error Metodo : getDtoUsuario");
}
return miDto;
}
public int getVersion() {
return version;
}
public void setVersion(int version) {
this.version = version;
}
}