diff --git a/curriculumsearch/src/main/java/com/roshka/modelo/Cargo.java b/curriculumsearch/src/main/java/com/roshka/modelo/Cargo.java index e69de29..f3dddf6 100644 --- a/curriculumsearch/src/main/java/com/roshka/modelo/Cargo.java +++ b/curriculumsearch/src/main/java/com/roshka/modelo/Cargo.java @@ -0,0 +1,50 @@ +package com.roshka.modelo; + +import java.util.List; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import javax.validation.constraints.NotBlank; + +import com.fasterxml.jackson.annotation.JsonManagedReference; + +@Entity +@Table(name = "cargo") +public class Cargo { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private long id; + + @NotBlank + @Column(name = "nombre") + private String nombre; + + @OneToMany(mappedBy = "cargo") + @JsonManagedReference + private List convocatorias; + + public long getId() { + return id; + } + public String getNombre() { + return nombre; + } + public void setId(long id) { + this.id = id; + } + public void setNombre(String nombre) { + this.nombre = nombre; + } + + public List getConvocatorias() { + return convocatorias; + } + public void setConvocatorias(List convocatorias) { + this.convocatorias = convocatorias; + } +} diff --git a/curriculumsearch/src/main/java/com/roshka/modelo/ConvocatoriaCargo.java b/curriculumsearch/src/main/java/com/roshka/modelo/ConvocatoriaCargo.java index e69de29..3f35e7e 100644 --- a/curriculumsearch/src/main/java/com/roshka/modelo/ConvocatoriaCargo.java +++ b/curriculumsearch/src/main/java/com/roshka/modelo/ConvocatoriaCargo.java @@ -0,0 +1,86 @@ +package com.roshka.modelo; + +import java.util.Date; +import java.util.List; + +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.ManyToMany; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +import com.fasterxml.jackson.annotation.JsonBackReference; +import com.roshka.utils.Helper; + +@Entity +@Table(name = "convocatoria_cargo") +public class ConvocatoriaCargo { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private long id; + + @ManyToOne() + @JoinColumn + @JsonBackReference + private Cargo cargo; + + @Column(name = "fecha_inicio") + private Date fechaInicio; + + @Column(name = "fecha_fin") + private Date fechaFin; + + @Column(name = "cupos") + private int cupos; + + @ManyToMany(mappedBy = "postulaciones") + private List postulantes; + + public long getId() { + return id; + } + public Cargo getCargo() { + return cargo; + } + public int getCupos() { + return cupos; + } + public Date getFechaFin() { + return fechaFin; + } + public Date getFechaInicio() { + return fechaInicio; + } + public void setId(long id) { + this.id = id; + } + public void setCargo(Cargo cargo) { + this.cargo = cargo; + } + public void setCupos(int cupos) { + this.cupos = cupos; + } + public void setFechaFin(Date fechaFin) { + this.fechaFin = fechaFin; + } + public void setFechaInicio(Date fechaInicio) { + this.fechaInicio = fechaInicio; + } + public void setFechaFin(String fechaFin) { + this.fechaFin = Helper.convertirFecha(fechaFin); + } + public void setFechaInicio(String fechaInicio) { + this.fechaInicio = Helper.convertirFecha(fechaInicio); + } + public List getPostulantes() { + return postulantes; + } + public void setPostulantes(List postulantes) { + this.postulantes = postulantes; + } + +} diff --git a/curriculumsearch/src/main/java/com/roshka/modelo/Postulante.java b/curriculumsearch/src/main/java/com/roshka/modelo/Postulante.java index a80f1cd..ec0912b 100644 --- a/curriculumsearch/src/main/java/com/roshka/modelo/Postulante.java +++ b/curriculumsearch/src/main/java/com/roshka/modelo/Postulante.java @@ -3,6 +3,7 @@ package com.roshka.modelo; import javax.persistence.*; import javax.validation.constraints.*; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonManagedReference; import com.roshka.utils.Helper; @@ -45,23 +46,6 @@ public class Postulante { @Column(name="ciudad_id") private Long ciudadId; - - public Ciudad getCiudad() { - return this.ciudad; - } - - public void setCiudad(Ciudad ciudad) { - this.ciudad = ciudad; - } - - public Long getCiudadId() { - return this.ciudadId; - } - - public void setCiudadId(Long ciudadId) { - this.ciudadId = ciudadId; - } - @Column(name = "telefono") @NotBlank(message = "Este campo no puede estar vacio") private String telefono; @@ -85,8 +69,6 @@ public class Postulante { @Column(name="estado_civil") @NotNull private String estadoCivil; - - @Column(name="nacionalidad", length = 2) @NotNull @@ -112,6 +94,18 @@ public class Postulante { @OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL) private List estudios; + @JsonManagedReference + @OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL) + private List referencias; + + @ManyToMany(cascade = CascadeType.ALL) + @JoinTable(uniqueConstraints = @UniqueConstraint(columnNames = {"postulante_id","convocatoria_cargo_id"}), + joinColumns = @JoinColumn(name="postulante_id", referencedColumnName="id"), + inverseJoinColumns= @JoinColumn(name="convocatoria_cargo_id", referencedColumnName="id") + ) + @JsonIgnore + private List postulaciones; + public long getId() { return id; @@ -201,26 +195,42 @@ public class Postulante { public Disponibilidad getDisponibilidad() { return disponibilidad; -} -public void setEstadoCivil(String estadoCivil) { - this.estadoCivil = estadoCivil; -} -public void setTipoDocumento(String tipoDocumento) { - this.tipoDocumento = tipoDocumento; -} -public String getEstadoCivil() { - return estadoCivil; -} -public String getTipoDocumento() { - return tipoDocumento; -} -public String getNacionalidad() { - return nacionalidad; -} + } -public void setNacionalidad(String nacionalidad) { - this.nacionalidad = nacionalidad; -} + public Ciudad getCiudad() { + return this.ciudad; + } + + public void setCiudad(Ciudad ciudad) { + this.ciudad = ciudad; + } + + public Long getCiudadId() { + return this.ciudadId; + } + + public void setCiudadId(Long ciudadId) { + this.ciudadId = ciudadId; + } + public void setEstadoCivil(String estadoCivil) { + this.estadoCivil = estadoCivil; + } + public void setTipoDocumento(String tipoDocumento) { + this.tipoDocumento = tipoDocumento; + } + public String getEstadoCivil() { + return estadoCivil; + } + public String getTipoDocumento() { + return tipoDocumento; + } + public String getNacionalidad() { + return nacionalidad; + } + + public void setNacionalidad(String nacionalidad) { + this.nacionalidad = nacionalidad; + } public void setDisponibilidad(Disponibilidad disponibilidad) { this.disponibilidad = disponibilidad; @@ -245,4 +255,18 @@ public void setNacionalidad(String nacionalidad) { public void setExperiencias(List experiencias) { this.experiencias = experiencias; } + public List getPostulaciones() { + return postulaciones; + } + public void setPostulaciones(List postulaciones) { + this.postulaciones = postulaciones; + } + + public void setReferencias(List referencias) { + this.referencias = referencias; + } + + public List getReferencias() { + return referencias; + } } diff --git a/curriculumsearch/src/main/java/com/roshka/modelo/ReferenciaPersonal.java b/curriculumsearch/src/main/java/com/roshka/modelo/ReferenciaPersonal.java new file mode 100644 index 0000000..75aca3b --- /dev/null +++ b/curriculumsearch/src/main/java/com/roshka/modelo/ReferenciaPersonal.java @@ -0,0 +1,78 @@ +package com.roshka.modelo; + +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.ManyToOne; +import javax.persistence.Table; +import javax.validation.constraints.NotBlank; + +import com.fasterxml.jackson.annotation.JsonBackReference; + +@Entity +@Table(name = "referencia_personal") +public class ReferenciaPersonal { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + @NotBlank + @Column(name = "nombre") + private String nombre; + + @NotBlank + @Column(name = "telefono") + private String telefono; + + @NotBlank + @Column(name = "relacion") + private String relacion; + + @ManyToOne(optional = false) + @JoinColumn + @JsonBackReference + private Postulante postulante; + + public Long getId() { + return id; + } + + public String getNombre() { + return nombre; + } + + public String getRelacion() { + return relacion; + } + + public String getTelefono() { + return telefono; + } + + public Postulante getPostulante() { + return postulante; + } + + public void setId(Long id) { + this.id = id; + } + + public void setNombre(String nombre) { + this.nombre = nombre; + } + + public void setRelacion(String relacion) { + this.relacion = relacion; + } + + public void setTelefono(String telefono) { + this.telefono = telefono; + } + + public void setPostulante(Postulante postulante) { + this.postulante = postulante; + } +} diff --git a/curriculumsearch/src/main/webapp/jsp/postulantes.jsp b/curriculumsearch/src/main/webapp/jsp/postulantes.jsp index f5221d7..d452dc2 100644 --- a/curriculumsearch/src/main/webapp/jsp/postulantes.jsp +++ b/curriculumsearch/src/main/webapp/jsp/postulantes.jsp @@ -41,7 +41,6 @@ # Nombre - Modalidad Disponibilidad Nivel de Ingles Experiencia @@ -53,7 +52,6 @@ ${staPost.index + 1} ${postulante.nombre} ${postulante.apellido} - ${postulante.modalidad.getDescripcion()} ${postulante.disponibilidad.getDescripcion()} ${postulante.nivelIngles} 0