package com.titanic.ventapasajes.modelo; import org.hibernate.validator.constraints.NotBlank; import javax.persistence.*; import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date; import java.util.List; import java.util.Objects; /** * Created by josediaz on 1/11/16. */ @Entity @Table(name = "pvm_hoja_ruta") public class HojaRuta implements Serializable { private static final long serialVersionUID = 1L; private Long ideHojaRuta; private String codigoHojaRuta; private Seguridad seguridad; private Programacion programacion; private List<HConductor> conductores; private List<Tripulante> tripulantes; private EstadoHojaRuta estadoHojaRuta; private Date fechaRegistro; @Id @GeneratedValue @Column(name="ide_hoja_ruta", nullable = false, length= 10) public Long getIdeHojaRuta() { return ideHojaRuta; } public void setIdeHojaRuta(Long ideHojaRuta) { this.ideHojaRuta = ideHojaRuta; } @Column(name="codigo_hoja_ruta", nullable=true, length = 255) public String getCodigoHojaRuta() { return codigoHojaRuta; } public void setCodigoHojaRuta(String codigoHojaRuta) { this.codigoHojaRuta = codigoHojaRuta; } @Transient public Seguridad getSeguridad() { return seguridad; } public void setSeguridad(Seguridad seguridad) { this.seguridad = seguridad; } @ManyToOne @JoinColumn(name = "ide_programacion", nullable = false) public Programacion getProgramacion() { return programacion; } public void setProgramacion(Programacion programacion) { this.programacion = programacion; } @OneToMany( cascade = CascadeType.ALL, orphanRemoval = true , fetch = FetchType.LAZY) @JoinTable(name="pvr_hoja_ruta_conductores", joinColumns={@JoinColumn(name="ide_hoja_ruta", referencedColumnName="ide_hoja_ruta")}, inverseJoinColumns={@JoinColumn(name="ide_conductor", referencedColumnName="ide_conductor")}) public List<HConductor> getConductores() { return conductores; } public void setConductores(List<HConductor> conductores) { this.conductores = conductores; } @OneToMany( cascade = CascadeType.ALL, orphanRemoval = true , fetch = FetchType.LAZY) @JoinTable(name="pvr_hoja_ruta_tripulantes", joinColumns={@JoinColumn(name="ide_hoja_ruta", referencedColumnName="ide_hoja_ruta")}, inverseJoinColumns={@JoinColumn(name="ide_tripulante", referencedColumnName="ide_tripulante")}) public List<Tripulante> getTripulantes() { return tripulantes; } public void setTripulantes(List<Tripulante> tripulantes) { this.tripulantes = tripulantes; } @NotNull @Enumerated(EnumType.STRING) @Column(name="estado", nullable=false, length = 50) public EstadoHojaRuta getEstadoHojaRuta() { return estadoHojaRuta; } public void setEstadoHojaRuta(EstadoHojaRuta estadoHojaRuta) { this.estadoHojaRuta = estadoHojaRuta; } @NotNull @Temporal(TemporalType.TIMESTAMP) @Column(name = "fecha_registro", nullable = false) public Date getFechaRegistro() { return fechaRegistro; } public void setFechaRegistro(Date fechaRegistro) { this.fechaRegistro = fechaRegistro; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; HojaRuta hojaRuta = (HojaRuta) o; return Objects.equals(ideHojaRuta, hojaRuta.ideHojaRuta); } @Override public int hashCode() { return Objects.hash(ideHojaRuta); } @Override public String toString() { return "HojaRuta{" + "ideHojaRuta=" + ideHojaRuta + ", codigoHojaRuta='" + codigoHojaRuta + '\'' + ", seguridad=" + seguridad + ", programacion=" + programacion + ", conductores=" + conductores + ", tripulantes=" + tripulantes + ", estadoHojaRuta=" + estadoHojaRuta + ", fechaRegistro=" + fechaRegistro + '}'; } }