blob: 2058abfe70f54b4c8418be1232fec211e575ae6b [file] [log] [blame]
margaretha08bdabe2017-10-17 14:38:49 +02001package de.ids_mannheim.korap.entity;
2
3import java.util.List;
4
margaretha7c38f4c2018-01-18 20:20:56 +01005import javax.persistence.CascadeType;
margarethab42b9632017-10-25 18:34:12 +02006import javax.persistence.Column;
margaretha08bdabe2017-10-17 14:38:49 +02007import javax.persistence.Entity;
8import javax.persistence.FetchType;
margarethabf11d8d2017-10-24 19:31:44 +02009import javax.persistence.GeneratedValue;
10import javax.persistence.GenerationType;
margaretha08bdabe2017-10-17 14:38:49 +020011import javax.persistence.Id;
12import javax.persistence.ManyToMany;
margarethabf11d8d2017-10-24 19:31:44 +020013import javax.persistence.OneToMany;
margaretha08bdabe2017-10-17 14:38:49 +020014import javax.persistence.Table;
15
16import lombok.Getter;
17import lombok.Setter;
18
19/** Describes user roles for example in managing a group or
20 * virtual corpora of a group.
21 *
22 * @author margaretha
23 * @see Privilege
24 */
25@Setter
26@Getter
27@Entity
28@Table(name = "role")
29public class Role {
30 @Id
margarethabf11d8d2017-10-24 19:31:44 +020031 @GeneratedValue(strategy = GenerationType.IDENTITY)
32 private int id;
margaretha7c38f4c2018-01-18 20:20:56 +010033 @Column(unique = true)
margarethabf11d8d2017-10-24 19:31:44 +020034 private String name;
margaretha08bdabe2017-10-17 14:38:49 +020035
36 @ManyToMany(mappedBy = "roles", fetch = FetchType.LAZY)
37 private List<UserGroupMember> userGroupMembers;
38
margaretha7c38f4c2018-01-18 20:20:56 +010039 @OneToMany(mappedBy = "role", fetch = FetchType.EAGER,
40 cascade = CascadeType.REMOVE)
margarethabf11d8d2017-10-24 19:31:44 +020041 private List<Privilege> privileges;
42
margaretha08bdabe2017-10-17 14:38:49 +020043 public String toString () {
margaretha61966dd2017-10-26 19:32:21 +020044 return "id=" + id + ", name=" + name;
margaretha08bdabe2017-10-17 14:38:49 +020045 }
46}