package ec.edu.espe.movilidad.MovilidadWS.Model; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Getter; import lombok.Setter; import javax.persistence.Entity; import javax.persistence.Table; import javax.persistence.*; import javax.validation.constraints.Size; import java.time.LocalDate; import java.util.LinkedHashSet; import java.util.Set; @Getter @Setter @Entity @Table(name = "uzytavobjetivo_programa") public class ModelUzytavObjetivoPrograma { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uzytavobjetivo_programa_seq") @SequenceGenerator(name = "uzytavobjetivo_programa_seq", sequenceName = "SEQ_UZYTAVOBJETIVO_PROGRAMA", allocationSize = 1) @Column(name = "uzytavobjetivo_programa_id") private Long uzytavobjetivo_programa_id; @Size(max = 1000) @Column(name = "uzytavobjetivo_programaindicador", length = 1000) private String uzytavobjetivo_programaindicador; @Size(max = 1000) @Column(name = "uzytavobjetivo_programamverifica", length = 1000) private String uzytavobjetivo_programamverifica; @Size(max = 1000) @Column(name = "uzytavobjetivo_programasupuestos", length = 1000) private String uzytavobjetivo_programasupuestos; //RELACIÓN CON PROGRAMA TABLA PADRE @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "uzytavprograma_v_id") private ModelUzyTavPrograma_V uzytavprograma_v; @Size(max = 1000) @Column(name = "uzytavobjetivo_programaobjetivo_proy", length = 1000) private String uzytavobjetivo_programaobjetivo_proy; @Column(name = "uzytavobjetivo_programatipo") private Long uzytavobjetivo_programatipo; //RELACIÓN CON PROYECTO-TABLA PADRE @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "uzytavproyec_id") private ModelUzyTavProyec uzytavproyec; //RELACIÓN CONSIGO MISMA @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "uzytavobjetivo_programa_id_padre", referencedColumnName = "uzytavobjetivo_programa_id") private ModelUzytavObjetivoPrograma uzytavobjetivo_programaPadre; @JsonIgnore @OneToMany(mappedBy = "uzytavobjetivo_programaPadre", cascade = CascadeType.ALL) private Set<ModelUzytavObjetivoPrograma> modelUzytavObjetivoProgramaSet = new LinkedHashSet<>(); @Column(name = "uzytavobjetivo_programaorden") private Long uzytavobjetivo_programaorden; @Column(name = "uzytavobjetivo_programafec_ini") private LocalDate uzytavobjetivo_programafec_ini; @Column(name = "uzytavobjetivo_programafec_fin") private LocalDate uzytavobjetivo_programafec_fin; @Column(name = "uzytavobjetivo_programaindicador_tipo") private Long uzytavobjetivo_programaindicador_tipo; @Column(name = "uzytavobjetivo_programaindicador_valor") private Long uzytavobjetivo_programaindicador_valor; @Column(name = "uzytavobjetivo_programaindicador_valor_eje") private Long uzytavobjetivo_programaindicador_valor_eje; //RELACIÓN CON ModelUzyTavDetActproy TABLA HIJA @JsonIgnore @OneToMany(mappedBy = "uzytavobjetivoPrograma") private Set<ModelUzyTavDetActproy> modelUzyTavDetActproySet = new LinkedHashSet<>(); //RELACIÓN CON ModelUzyTavSeguim TABLA HIJA @JsonIgnore @OneToMany(mappedBy = "uzytavobjetivoPrograma") private Set<ModelUzyTavSeguim> modelUzyTavSeguimSet = new LinkedHashSet<>(); }