Portal Spring Boot version Hibernate implementation
[portal.git] / portal-BE / src / main / java / org / onap / portal / domain / db / ep / EpAppRoleFunction.java
1 package org.onap.portalapp.portal.domain.db.ep;
2
3
4 import javax.persistence.CascadeType;
5 import javax.persistence.Column;
6 import javax.persistence.Entity;
7 import javax.persistence.FetchType;
8 import javax.persistence.GeneratedValue;
9 import javax.persistence.GenerationType;
10 import javax.persistence.Id;
11 import javax.persistence.Index;
12 import javax.persistence.JoinColumn;
13 import javax.persistence.JoinColumns;
14 import javax.persistence.ManyToOne;
15 import javax.persistence.Table;
16 import javax.validation.Valid;
17 import javax.validation.constraints.Digits;
18 import javax.validation.constraints.NotNull;
19 import lombok.AllArgsConstructor;
20 import lombok.Getter;
21 import lombok.NoArgsConstructor;
22 import lombok.Setter;
23 import org.hibernate.validator.constraints.SafeHtml;
24 import org.onap.portalapp.portal.domain.db.fn.FnApp;
25 import org.onap.portalapp.portal.domain.db.fn.FnRole;
26
27 @Table(name = "ep_app_role_function", indexes = {
28         @Index(name = "UNIQUE KEY", columnList = "app_id, role_id, function_cd", unique = true)
29 })
30 @NoArgsConstructor
31 @AllArgsConstructor
32 @Getter
33 @Setter
34 @Entity
35 public class EpAppRoleFunction {
36        @Id
37        @GeneratedValue(strategy = GenerationType.AUTO)
38        @Column(name = "id", length = 11, nullable = false, columnDefinition = "int(11) NOT NULL AUTO_INCREMENT")
39        @Digits(integer = 11, fraction = 0)
40        private Integer id;
41        @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
42        @JoinColumn(name = "app_id", insertable = false, updatable = false)
43        @Valid
44        @NotNull
45        private FnApp appId;
46        @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
47        @JoinColumn(name = "role_id")
48        @Valid
49        @NotNull
50        private FnRole fnRole;
51        @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
52        @JoinColumns({
53                @JoinColumn(name = "app_id", referencedColumnName = "app_id"),
54                @JoinColumn(name = "function_cd", referencedColumnName = "function_cd")
55        })
56        @Valid
57        @NotNull
58        private EpAppFunction epAppFunction;
59        @Column(name = "role_app_id", length = 20, columnDefinition = "VARCHAR(20) DEFAULT NULL")
60        @Digits(integer = 20, fraction = 0)
61        @SafeHtml
62        private String roleAppId;
63 }