Jpa Entity условное сопоставление отношений? - PullRequest
1 голос
/ 08 мая 2019

У меня есть Класс Персона и Класс Зоны.

Если Тип Лица ОТВЕТСТВЕННЫЙ, следует применять Двунаправленный один к одному.

Если Тип Лица ГАРД, следует применять МНОГО ОДНОГО.

есть ли способ добиться этого ????

Для начинающих я хочу предоставить это, но аннотация @Where кажется нераспознанной:

    @Entity

public class Personnel implements Serializable {



    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int Id;
    private String nom;
    private String prenom;
    private int Age;
    private Date dateDeRecretement;
    private String Login;
    private String password;
    @Enumerated(EnumType.STRING)
    private TypePoste poste;

    @Where(clause = "poste = 'GARDE_NUIT'")
    @ManyToOne
    private Zone zone;


    @Where(clause = "poste = 'GARDE_JOUR'")
    @ManyToOne
    private Zone zone1;


    @Where(clause = "poste = 'RESPONSABLE'")
    @ManyToOne
    private Zone zone2;

    private static final long serialVersionUID = 1L;

    public Personnel() {
        super();
    }   
    public int getId() {
        return this.Id;
    }

    public void setId(int Id) {
        this.Id = Id;
    }   
    public String getNom() {
        return this.nom;
    }

    public void setNom(String nom) {
        this.nom = nom;
    }   
    public String getPrenom() {
        return this.prenom;
    }

    public void setPrenom(String prenom) {
        this.prenom = prenom;
    }   
    public int getAge() {
        return this.Age;
    }

    public void setAge(int Age) {
        this.Age = Age;
    }   
    public Date getDateDeRecretement() {
        return this.dateDeRecretement;
    }

    public void setDateDeRecretement(Date dateDeRecretement) {
        this.dateDeRecretement = dateDeRecretement;
    }   
    public String getLogin() {
        return this.Login;
    }

    public void setLogin(String Login) {
        this.Login = Login;
    }   
    public String getPassword() {
        return this.password;
    }

    public void setPassword(String password) {
        this.password = password;
    }   
    public TypePoste getPoste() {
        return this.poste;
    }

    public void setPoste(TypePoste poste) {
        this.poste = poste;
    }
    public Zone getZone() {
        return zone;
    }
    public void setZone(Zone zone) {
        this.zone = zone;
    }
    public Zone getZone1() {
        return zone1;
    }
    public void setZone1(Zone zone1) {
        this.zone1 = zone1;
    }
    public Zone getZone2() {
        return zone2;
    }
    public void setZone2(Zone zone2) {
        this.zone2 = zone2;
    }

}

Это UMLСхема для представления того, чего я пытаюсь достичь.

UML Diagram To Achieve

1 Ответ

0 голосов
/ 08 мая 2019

Вы можете просто добавить простое ограничение, такое как

enter image description here

Это ограничение может быть записано как хороший OCL наверняка.Но а) я не настолько устойчив с OCL и б) кодировщик должен быть способен правильно это реализовать.

...