package fr.plil.sio.persistence.api; import java.util.LinkedList; import java.util.List; import javax.persistence.*; /** * A right is unique by itd ID, i.e. it can exist two rights with the same name in the database. * A right may have a parent, null else. * A right can have zero, one or more siblings. */ @Entity @Table (name = "RIGHT_T") public class Right { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "RIGHT_ID") private Long id; @Column(name = "RIGHT_NAME") private String name; /// the parent right @ManyToOne @JoinColumn(name = "PARENT") private Right parent; /// the sibling right(s), eventually empty @OneToMany(mappedBy="parent", cascade = CascadeType.REMOVE) private List siblings = new LinkedList<>(); public List getSiblings() { return siblings; } public void setSiblings(List siblings) { this.siblings = siblings; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Right getParent() { return parent; } public void setParent(Right parent) { this.parent = parent; } }