package abaque.metier;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import javax.persistence.*;
import sun.util.logging.resources.logging;
@Entity
@Table(name="T_LOT_LOT")
public class Lot{
//Champs
@Id
@Column(name = "LOT_ID", nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column(name = "LOT_VERSION", nullable = false)
@Version
private int version;
@Column(name = "LOT_NOM", length = 255, nullable = false)
private String nom;
// relation principale Lot (many) -> Projet (one)
// implémentée par une clé étrangère (PRO_ID) dans Lot
// 1 Lot a nécessairement 1 Projet (nullable=false)
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "PRO_ID", nullable = false)
private Projet projet;
// relation inverse Lot (one) -> Fonction (many)
@OneToMany(fetch=FetchType.LAZY, mappedBy = "lot", cascade = { CascadeType.REMOVE })
private Set<Fonction> fonctions = new HashSet<Fonction>();
// relation inverse Lot (one) -> PhaseLot (many)
// cascade suppression Lot -> supression PhaseLot
@OneToMany(mappedBy = "lot2", cascade = { CascadeType.REMOVE })
private Set<EtapeLot> etapes = new HashSet<EtapeLot>();
//relation inverse Lot (one) -> LotTypeComplexite (many)
//cascade suppression Phase -> supression LotTypeComplexite
//TODO verifier la cascade
@OneToMany(mappedBy = "lot3", cascade = { CascadeType.REMOVE })
private Set<LotTypeComplexite> ltc = new HashSet<LotTypeComplexite>();
//Constructeurs
public Lot(){
}
public Lot (String nom){
setNom(nom);
}
//association bidirectionnelle Lot <--> Fonction
public void addFonction(Fonction fct){
// la fonction est ajoutée dans la collection des fonctions du lot
fonctions.add(fct);
// la fonction change de lot
fct.setLot(this);
}
//Getters et Setters
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public int getVersion() {
return version;
}
public void setVersion(int version) {
this.version = version;
}
public Projet getProjet() {
return projet;
}
public void setProjet(Projet projet) {
this.projet = projet;
}
public Set<Fonction> getFonctions() {
return fonctions;
}
public void setFonctions(Set<Fonction> fonctions) {
this.fonctions = fonctions;
}
public Set<EtapeLot> getEtapes() {
return etapes;
}
public void setEtapes(Set<EtapeLot> etapes) {
this.etapes = etapes;
}
public Set<LotTypeComplexite> getLtc() {
return ltc;
}
public void setLtc(Set<LotTypeComplexite> ltc) {
this.ltc = ltc;
}
}
Partager