From 4c446810b427c5f9ff757b74c1163abd21497c9d Mon Sep 17 00:00:00 2001 From: msahmane Date: Mon, 3 Oct 2016 12:21:59 +0200 Subject: [PATCH] Ajout des annotations --- src/main/java/fr/plil/sio/persistence/api/Group.java | 21 ++++++++++++++++++--- src/main/java/fr/plil/sio/persistence/api/Right.java | 29 ++++++++++++++++++++++++++--- src/main/java/fr/plil/sio/persistence/api/User.java | 20 +++++++++++++++++++- 3 files changed, 63 insertions(+), 7 deletions(-) diff --git a/src/main/java/fr/plil/sio/persistence/api/Group.java b/src/main/java/fr/plil/sio/persistence/api/Group.java index 0cb77fa..fd64cec 100644 --- a/src/main/java/fr/plil/sio/persistence/api/Group.java +++ b/src/main/java/fr/plil/sio/persistence/api/Group.java @@ -1,27 +1,42 @@ package fr.plil.sio.persistence.api; +import java.io.Serializable; import java.util.LinkedList; import java.util.List; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Table; +import javax.persistence.Id; +import javax.persistence.OneToMany; /** * A group is unique by its name (no two groups with the same name or the same ID can exist in the database). * A group contains a list of rights unique by their ID (no two groups with the same ID can exist in the database). */ +@Entity +@Table(name = "GROUP_T") +public class Group implements Serializable { -public class Group { - + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "GROUP_ID") private Long id; - + + @Column(name = "NAME_C") private String name; /** * Users in the group. */ + @OneToMany(mappedBy = "group") private List users = new LinkedList<>(); /** * List of rights. The list CANNOT contains duplicate rights. */ + @OneToMany(mappedBy = "group") private List rights = new LinkedList<>(); public List getRights() { diff --git a/src/main/java/fr/plil/sio/persistence/api/Right.java b/src/main/java/fr/plil/sio/persistence/api/Right.java index 6929203..524c4af 100644 --- a/src/main/java/fr/plil/sio/persistence/api/Right.java +++ b/src/main/java/fr/plil/sio/persistence/api/Right.java @@ -1,24 +1,47 @@ package fr.plil.sio.persistence.api; +import java.io.Serializable; import java.util.LinkedList; import java.util.List; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Table; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; /** * 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. */ - -public class Right { - +@Entity +@Table(name = "RIGHT_T") +public class Right implements Serializable{ + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "RIGHT_ID") private Long id; + @Column(name = "NAME_C") private String name; /// the parent right + @ManyToOne(optional = false) + @JoinColumn(name = "RIGHT_ID") + @Column(name = "PARENT_C") private Right parent; + + @ManyToOne(optional = false) + @JoinColumn(name = "GROUP_ID") + private Group group; /// the sibling right(s), eventually empty + @OneToMany(mappedBy = "parent") private List siblings = new LinkedList<>(); public List getSiblings() { diff --git a/src/main/java/fr/plil/sio/persistence/api/User.java b/src/main/java/fr/plil/sio/persistence/api/User.java index 7b075cc..b47990e 100644 --- a/src/main/java/fr/plil/sio/persistence/api/User.java +++ b/src/main/java/fr/plil/sio/persistence/api/User.java @@ -1,16 +1,34 @@ package fr.plil.sio.persistence.api; +import java.io.Serializable; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + /** * An user MUST have a group in the database. * An user is unique by it name, i.e. database cannot contain two user with the same name or the same ID. */ -public class User { +@Entity +@Table(name = "USER_T") +public class User implements Serializable{ + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "USER_ID") private Long id; + @Column(name = "NAME_C") private String name; + @ManyToOne(optional = false) + @JoinColumn(name = "GROUP_ID") private Group group; public Long getId() { -- libgit2 0.21.2