Commit 4c446810b427c5f9ff757b74c1163abd21497c9d
1 parent
62ed607d
Ajout des annotations
Showing
3 changed files
with
63 additions
and
7 deletions
Show diff stats
src/main/java/fr/plil/sio/persistence/api/Group.java
1 | 1 | package fr.plil.sio.persistence.api; |
2 | 2 | |
3 | +import java.io.Serializable; | |
3 | 4 | import java.util.LinkedList; |
4 | 5 | import java.util.List; |
6 | +import javax.persistence.Column; | |
7 | +import javax.persistence.Entity; | |
8 | +import javax.persistence.GeneratedValue; | |
9 | +import javax.persistence.GenerationType; | |
10 | +import javax.persistence.Table; | |
11 | +import javax.persistence.Id; | |
12 | +import javax.persistence.OneToMany; | |
5 | 13 | |
6 | 14 | /** |
7 | 15 | * A group is unique by its name (no two groups with the same name or the same ID can exist in the database). |
8 | 16 | * A group contains a list of rights unique by their ID (no two groups with the same ID can exist in the database). |
9 | 17 | */ |
18 | +@Entity | |
19 | +@Table(name = "GROUP_T") | |
20 | +public class Group implements Serializable { | |
10 | 21 | |
11 | -public class Group { | |
12 | - | |
22 | + @Id | |
23 | + @GeneratedValue(strategy = GenerationType.AUTO) | |
24 | + @Column(name = "GROUP_ID") | |
13 | 25 | private Long id; |
14 | - | |
26 | + | |
27 | + @Column(name = "NAME_C") | |
15 | 28 | private String name; |
16 | 29 | |
17 | 30 | /** |
18 | 31 | * Users in the group. |
19 | 32 | */ |
33 | + @OneToMany(mappedBy = "group") | |
20 | 34 | private List<User> users = new LinkedList<>(); |
21 | 35 | |
22 | 36 | /** |
23 | 37 | * List of rights. The list CANNOT contains duplicate rights. |
24 | 38 | */ |
39 | + @OneToMany(mappedBy = "group") | |
25 | 40 | private List<Right> rights = new LinkedList<>(); |
26 | 41 | |
27 | 42 | public List<Right> getRights() { | ... | ... |
src/main/java/fr/plil/sio/persistence/api/Right.java
1 | 1 | package fr.plil.sio.persistence.api; |
2 | 2 | |
3 | +import java.io.Serializable; | |
3 | 4 | import java.util.LinkedList; |
4 | 5 | import java.util.List; |
6 | +import javax.persistence.Column; | |
7 | +import javax.persistence.Entity; | |
8 | +import javax.persistence.GeneratedValue; | |
9 | +import javax.persistence.GenerationType; | |
10 | +import javax.persistence.Table; | |
11 | +import javax.persistence.Id; | |
12 | +import javax.persistence.JoinColumn; | |
13 | +import javax.persistence.ManyToOne; | |
14 | +import javax.persistence.OneToMany; | |
5 | 15 | |
6 | 16 | /** |
7 | 17 | * A right is unique by itd ID, i.e. it can exist two rights with the same name in the database. |
8 | 18 | * A right may have a parent, null else. |
9 | 19 | * A right can have zero, one or more siblings. |
10 | 20 | */ |
11 | - | |
12 | -public class Right { | |
13 | - | |
21 | +@Entity | |
22 | +@Table(name = "RIGHT_T") | |
23 | +public class Right implements Serializable{ | |
24 | + | |
25 | + @Id | |
26 | + @GeneratedValue(strategy = GenerationType.AUTO) | |
27 | + @Column(name = "RIGHT_ID") | |
14 | 28 | private Long id; |
15 | 29 | |
30 | + @Column(name = "NAME_C") | |
16 | 31 | private String name; |
17 | 32 | |
18 | 33 | /// the parent right |
34 | + @ManyToOne(optional = false) | |
35 | + @JoinColumn(name = "RIGHT_ID") | |
36 | + @Column(name = "PARENT_C") | |
19 | 37 | private Right parent; |
38 | + | |
39 | + @ManyToOne(optional = false) | |
40 | + @JoinColumn(name = "GROUP_ID") | |
41 | + private Group group; | |
20 | 42 | |
21 | 43 | /// the sibling right(s), eventually empty |
44 | + @OneToMany(mappedBy = "parent") | |
22 | 45 | private List<Right> siblings = new LinkedList<>(); |
23 | 46 | |
24 | 47 | public List<Right> getSiblings() { | ... | ... |
src/main/java/fr/plil/sio/persistence/api/User.java
1 | 1 | package fr.plil.sio.persistence.api; |
2 | 2 | |
3 | +import java.io.Serializable; | |
4 | +import javax.persistence.Column; | |
5 | +import javax.persistence.Entity; | |
6 | +import javax.persistence.GeneratedValue; | |
7 | +import javax.persistence.GenerationType; | |
8 | +import javax.persistence.Id; | |
9 | +import javax.persistence.JoinColumn; | |
10 | +import javax.persistence.ManyToOne; | |
11 | +import javax.persistence.Table; | |
12 | + | |
3 | 13 | /** |
4 | 14 | * An user MUST have a group in the database. |
5 | 15 | * An user is unique by it name, i.e. database cannot contain two user with the same name or the same ID. |
6 | 16 | */ |
7 | 17 | |
8 | -public class User { | |
18 | +@Entity | |
19 | +@Table(name = "USER_T") | |
20 | +public class User implements Serializable{ | |
9 | 21 | |
22 | + @Id | |
23 | + @GeneratedValue(strategy = GenerationType.AUTO) | |
24 | + @Column(name = "USER_ID") | |
10 | 25 | private Long id; |
11 | 26 | |
27 | + @Column(name = "NAME_C") | |
12 | 28 | private String name; |
13 | 29 | |
30 | + @ManyToOne(optional = false) | |
31 | + @JoinColumn(name = "GROUP_ID") | |
14 | 32 | private Group group; |
15 | 33 | |
16 | 34 | public Long getId() { | ... | ... |