/* * 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 java.io.Serializable; import java.util.List; import javax.persistence.Basic; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.EmbeddedId; import javax.persistence.Entity; 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.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 = "ciudad") @XmlRootElement @NamedQueries({ @NamedQuery(name = "Ciudad.findAll", query = "SELECT c FROM Ciudad c"), @NamedQuery(name = "Ciudad.findByIdCiudad", query = "SELECT c FROM Ciudad c WHERE c.ciudadPK.idCiudad = :idCiudad"), @NamedQuery(name = "Ciudad.findByNombreCiudad", query = "SELECT c FROM Ciudad c WHERE c.nombreCiudad = :nombreCiudad"), @NamedQuery(name = "Ciudad.findByIdDepartamento", query = "SELECT c FROM Ciudad c WHERE c.ciudadPK.idDepartamento = :idDepartamento")}) public class Ciudad implements Serializable { private static final long serialVersionUID = 1L; @EmbeddedId protected CiudadPK ciudadPK; @Basic(optional = false) @NotNull @Size(min = 1, max = 45) @Column(name = "nombre_ciudad") private String nombreCiudad; @JoinTable(name = "usuario_has_ciudad", joinColumns = { @JoinColumn(name = "id_ciudad", referencedColumnName = "id_ciudad"), @JoinColumn(name = "id_departamento", referencedColumnName = "id_departamento")}, inverseJoinColumns = { @JoinColumn(name = "id_usuario", referencedColumnName = "id_usuario")}) @ManyToMany private List<Usuario> usuarioList; @OneToMany(cascade = CascadeType.ALL, mappedBy = "ciudad") private List<VisitaTecnica> visitaTecnicaList; @OneToMany(cascade = CascadeType.ALL, mappedBy = "ciudad") private List<CentroFormacion> centroFormacionList; @OneToMany(mappedBy = "ciudad") private List<Revision> revisionList; @JoinColumn(name = "id_departamento", referencedColumnName = "id_departamento", insertable = false, updatable = false) @ManyToOne(optional = false) private Departamento departamento; public Ciudad() { } public Ciudad(CiudadPK ciudadPK) { this.ciudadPK = ciudadPK; } public Ciudad(CiudadPK ciudadPK, String nombreCiudad) { this.ciudadPK = ciudadPK; this.nombreCiudad = nombreCiudad; } public Ciudad(int idCiudad, int idDepartamento) { this.ciudadPK = new CiudadPK(idCiudad, idDepartamento); } public CiudadPK getCiudadPK() { return ciudadPK; } public void setCiudadPK(CiudadPK ciudadPK) { this.ciudadPK = ciudadPK; } public String getNombreCiudad() { return nombreCiudad; } public void setNombreCiudad(String nombreCiudad) { this.nombreCiudad = nombreCiudad; } @XmlTransient public List<Usuario> getUsuarioList() { return usuarioList; } public void setUsuarioList(List<Usuario> usuarioList) { this.usuarioList = usuarioList; } @XmlTransient public List<VisitaTecnica> getVisitaTecnicaList() { return visitaTecnicaList; } public void setVisitaTecnicaList(List<VisitaTecnica> visitaTecnicaList) { this.visitaTecnicaList = visitaTecnicaList; } @XmlTransient public List<CentroFormacion> getCentroFormacionList() { return centroFormacionList; } public void setCentroFormacionList(List<CentroFormacion> centroFormacionList) { this.centroFormacionList = centroFormacionList; } @XmlTransient public List<Revision> getRevisionList() { return revisionList; } public void setRevisionList(List<Revision> revisionList) { this.revisionList = revisionList; } public Departamento getDepartamento() { return departamento; } public void setDepartamento(Departamento departamento) { this.departamento = departamento; } @Override public int hashCode() { int hash = 0; hash += (ciudadPK != null ? ciudadPK.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 Ciudad)) { return false; } Ciudad other = (Ciudad) object; if ((this.ciudadPK == null && other.ciudadPK != null) || (this.ciudadPK != null && !this.ciudadPK.equals(other.ciudadPK))) { return false; } return true; } @Override public String toString() { return "com.pepe.jpa.entities.Ciudad[ ciudadPK=" + ciudadPK + " ]"; } }