package org.transgalactica.management.data.people.bo.impl; import java.util.HashSet; import java.util.Set; import javax.persistence.DiscriminatorValue; import javax.persistence.Entity; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import lombok.Getter; import lombok.Setter; import org.transgalactica.fwk.domain.stereotype.DataBean; import org.transgalactica.management.data.people.bo.MecanicienEntity; import org.transgalactica.management.data.referentiel.bo.EmployeType; import org.transgalactica.management.data.referentiel.bo.MecanicienSpecialiteEntity; import org.transgalactica.management.data.referentiel.bo.impl.JpaMecanicienSpecialiteEntity; @DataBean("org.transgalactica.management.data.people.bo.MecanicienEntity") @Getter @Setter @Entity @DiscriminatorValue("MECANICIEN") public class JpaMecanicienEntity extends AbstractJpaEmployeEntity implements MecanicienEntity { private static final long serialVersionUID = 1L; @ManyToMany(targetEntity = JpaMecanicienSpecialiteEntity.class) @JoinTable(name = "AFFECTATION_MECANICIENS_SPECIALITES", joinColumns = @JoinColumn(name = "id_employe", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "id_specialite", referencedColumnName = "id")) private Set<MecanicienSpecialiteEntity> specialites = new HashSet<MecanicienSpecialiteEntity>(1); protected JpaMecanicienEntity() { setType(EmployeType.MECANICIEN); } /* * Methodes deleguées */ @Override public boolean addSpecialite(MecanicienSpecialiteEntity specialite) { return specialites.add(specialite); } @Override public boolean removeSpecialite(MecanicienSpecialiteEntity specialite) { return specialites.remove(specialite); } }