Commit 56937330 by Joel Florentin

enum para modalidad y disponibilidad.

parent c492342c
...@@ -3,7 +3,8 @@ package com.roshka.controller; ...@@ -3,7 +3,8 @@ package com.roshka.controller;
import javax.validation.ConstraintViolationException; import javax.validation.ConstraintViolationException;
import com.roshka.modelo.Disponibilidad;
import com.roshka.modelo.Modalidad;
import com.roshka.modelo.Postulante; import com.roshka.modelo.Postulante;
import com.roshka.repositorio.PostulanteRepository; import com.roshka.repositorio.PostulanteRepository;
import com.roshka.repositorio.TecnologiaRepository; import com.roshka.repositorio.TecnologiaRepository;
...@@ -33,6 +34,8 @@ public class PostulanteController { ...@@ -33,6 +34,8 @@ public class PostulanteController {
@RequestMapping("/postulante") @RequestMapping("/postulante")
public String getFormPostulante(Model model){ public String getFormPostulante(Model model){
model.addAttribute("tecnologias", tecRepo.findAll()); model.addAttribute("tecnologias", tecRepo.findAll());
model.addAttribute("modalidades", Modalidad.values());
model.addAttribute("disponibilidades", Disponibilidad.values());
return "postulante-form"; return "postulante-form";
} }
......
package com.roshka.modelo;
import com.fasterxml.jackson.annotation.JsonValue;
public enum Disponibilidad {
TIEMPO_COMPLETO("C"), PARCIAL("P");
private String code;
private Disponibilidad(String code) {
this.code = code;
}
@JsonValue
public String getCode() {
return code;
}
}
package com.roshka.modelo;
import java.util.Arrays;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
@Converter(autoApply = true)
public class DisponibilidadConverter implements AttributeConverter<Disponibilidad, String> {
@Override
public String convertToDatabaseColumn(Disponibilidad modalidad) {
if (modalidad == null) {
return null;
}
return modalidad.getCode();
}
@Override
public Disponibilidad convertToEntityAttribute(String code) {
if (code == null) {
return null;
}
return Arrays.stream(Disponibilidad.values())
.filter(c -> c.getCode().equals(code))
.findFirst()
.orElseThrow(IllegalArgumentException::new);
}
}
package com.roshka.modelo;
import com.fasterxml.jackson.annotation.JsonValue;
public enum Modalidad {
PRESENCIAL("P"), SEMIPRESENCIAL("S"), REMOTO("R");
private String code;
private Modalidad(String code) {
this.code = code;
}
@JsonValue
public String getCode() {
return code;
}
}
package com.roshka.modelo;
import java.util.Arrays;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
@Converter(autoApply = true)
public class ModalidadConverter implements AttributeConverter<Modalidad, String> {
@Override
public String convertToDatabaseColumn(Modalidad modalidad) {
if (modalidad == null) {
return null;
}
return modalidad.getCode();
}
@Override
public Modalidad convertToEntityAttribute(String code) {
if (code == null) {
return null;
}
return Arrays.stream(Modalidad.values())
.filter(c -> c.getCode().equals(code))
.findFirst()
.orElseThrow(IllegalArgumentException::new);
}
}
...@@ -6,8 +6,6 @@ import javax.validation.constraints.*; ...@@ -6,8 +6,6 @@ import javax.validation.constraints.*;
import com.fasterxml.jackson.annotation.JsonManagedReference; import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.roshka.utils.Helper; import com.roshka.utils.Helper;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -66,12 +64,12 @@ public class Postulante { ...@@ -66,12 +64,12 @@ public class Postulante {
@Column(name = "curriculum") @Column(name = "curriculum")
private String curriculum; private String curriculum;
@Column(name = "modalidad") @Column(name = "modalidad", length = 2)
@NotNull @NotNull
private String modalidad; private Modalidad modalidad;
@Column(name = "disponibilidad") @Column(name = "disponibilidad", length = 2)
private String disponibilidad; private Disponibilidad disponibilidad;
@JsonManagedReference @JsonManagedReference
@OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL) @OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL)
...@@ -178,19 +176,19 @@ public class Postulante { ...@@ -178,19 +176,19 @@ public class Postulante {
this.curriculum = curriculum; this.curriculum = curriculum;
} }
public String getModalidad() { public Modalidad getModalidad() {
return modalidad; return modalidad;
} }
public void setModalidad(String modalidad) { public void setModalidad(Modalidad modalidad) {
this.modalidad = modalidad; this.modalidad = modalidad;
} }
public String getDisponibilidad() { public Disponibilidad getDisponibilidad() {
return disponibilidad; return disponibilidad;
} }
public void setDisponibilidad(String disponibilidad) { public void setDisponibilidad(Disponibilidad disponibilidad) {
this.disponibilidad = disponibilidad; this.disponibilidad = disponibilidad;
} }
......
package com.roshka.repositorio; package com.roshka.repositorio;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
import com.roshka.modelo.Postulante; import com.roshka.modelo.Postulante;
public interface PostulanteRepository extends JpaRepository<Postulante,Long> { public interface PostulanteRepository extends JpaRepository<Postulante,Long> {
@Query("select p from Postulante p join p.estudios e on e.institucion LIKE %?1%")
public List<Postulante> findByInstitucionEstudio(String institucion);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment