RoleApp class DB constraints
[portal.git] / ecomp-portal-widget-ms / widget-ms / src / main / java / org / onap / portalapp / widget / domain / RoleApp.java
1 package org.onap.portalapp.widget.domain;
2
3 import java.io.Serializable;
4 import java.util.Set;
5
6 import javax.persistence.CascadeType;
7 import javax.persistence.Column;
8 import javax.persistence.Entity;
9 import javax.persistence.FetchType;
10 import javax.persistence.GeneratedValue;
11 import javax.persistence.GenerationType;
12 import javax.persistence.Id;
13 import javax.persistence.JoinColumn;
14 import javax.persistence.ManyToMany;
15 import javax.persistence.ManyToOne;
16 import javax.persistence.Table;
17
18 import com.fasterxml.jackson.annotation.JsonIgnore;
19 import javax.validation.Valid;
20 import javax.validation.constraints.Digits;
21 import javax.validation.constraints.NotNull;
22 import javax.validation.constraints.Size;
23 import lombok.Getter;
24 import lombok.Setter;
25 import org.hibernate.validator.constraints.SafeHtml;
26
27 @Entity
28 @Table(name = "FN_ROLE")
29 @Getter
30 @Setter
31 public class RoleApp implements Serializable{
32         private static final long serialVersionUID = 1L;
33
34         @Id
35         @Column(name = "ROLE_ID")
36         @GeneratedValue(strategy=GenerationType.AUTO)
37         @Digits(integer = 11, fraction = 0)
38         private Long roleId;
39
40         @Column(name = "ROLE_Name")
41         @SafeHtml
42         @Size(max = 300)
43         @NotNull
44         private String roleName;
45         
46         @ManyToOne(fetch = FetchType.EAGER)
47         @JoinColumn(name="APP_ID")
48         @Valid
49         private App app;
50         
51         @JsonIgnore
52         @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH}, mappedBy="widgetRoles")
53         @Valid
54         private Set<WidgetCatalog> widgets;
55
56         @Override
57         public String toString() {
58                 return "RoleApp [roleId=" + roleId + ", roleName=" + roleName + ", app=" + app + "]";
59         }
60         
61 }