Domain model change
[portal.git] / portal-BE / src / main / java / org / onap / portal / domain / db / fn / FnMenuFunctional.java
index bfdc673..0e376f7 100644 (file)
@@ -40,8 +40,8 @@
 
 package org.onap.portal.domain.db.fn;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.io.Serializable;
+import java.util.Set;
 import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
@@ -54,7 +54,10 @@ import javax.persistence.JoinColumn;
 import javax.persistence.JoinTable;
 import javax.persistence.ManyToMany;
 import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
 import javax.persistence.OneToMany;
+import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 import javax.validation.Valid;
 import javax.validation.constraints.Digits;
@@ -62,6 +65,7 @@ import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Pattern;
 import javax.validation.constraints.Size;
 import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
@@ -83,14 +87,23 @@ CREATE TABLE `fn_menu_functional` (
 )
 */
 
+@NamedQueries({
+    @NamedQuery(
+        name = "FnMenuFunctional.retrieveByMenuId",
+        query = "from FnMenuFunctionalRoles where menuId =:menuId"
+    )
+}
+)
+
 @Table(name = "fn_menu_functional", indexes = {@Index(columnList = "parent_menu_id", name = "fk_fn_menu_func_parent_menu_id_idx")
 })
 @NoArgsConstructor
 @AllArgsConstructor
+@Builder
 @Getter
 @Setter
 @Entity
-public class FnMenuFunctional {
+public class FnMenuFunctional implements Serializable {
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name = "menu_id", nullable = false, length = 11)
@@ -104,7 +117,7 @@ public class FnMenuFunctional {
        @SafeHtml
        @NotNull
        private String text;
-       @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+       @ManyToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY)
        @JoinColumn(name = "parent_menu_id")
        @Valid
        private FnMenuFunctional parentMenuId;
@@ -115,45 +128,42 @@ public class FnMenuFunctional {
        //TODO URL
        @URL
        private String url;
-       @Column(name = "active_yn", length = 1, columnDefinition = "varchar(1) default 'Y'", nullable = false)
-       @Pattern(regexp = "[YNyn]")
-       @Size(max = 1)
+       @Column(name = "active_yn", length = 1, columnDefinition = "boolean default true", nullable = false)
        @NotNull
-       @SafeHtml
-       private String activeYn;
+       private Boolean activeYn = true;
        @Column(name = "image_src", length = 100, columnDefinition = "varchar(100) default null")
        @Size(max = 100)
        @SafeHtml
        private String imageSrc;
-       @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+       @ManyToMany(cascade = CascadeType.MERGE, fetch = FetchType.LAZY)
        @JoinTable(
                name = "fn_menu_favorites",
                joinColumns = {@JoinColumn(name = "menu_id", referencedColumnName = "menu_id")},
-               inverseJoinColumns = {@JoinColumn(name = "role_Id", referencedColumnName = "user_id")},
+               inverseJoinColumns = {@JoinColumn(name = "role_Id", referencedColumnName = "id", columnDefinition = "bigint")},
                indexes = {
                        @Index(name = "sys_c0014619", columnList = "menu_id")
                }
        )
-       private List<FnUser> fnUsers = new ArrayList<>();
+       private Set<FnUser> fnUsers;
        @OneToMany(
                targetEntity = FnMenuFunctionalAncestors.class,
                mappedBy = "menuId",
-               cascade = CascadeType.ALL,
+               cascade = CascadeType.MERGE,
                fetch = FetchType.LAZY
        )
-       private List<FnMenuFunctionalAncestors> fnMenuFunctionalAncestorsMenuId = new ArrayList<>();
+       private Set<FnMenuFunctionalAncestors> fnMenuFunctionalAncestorsMenuId;
        @OneToMany(
                targetEntity = FnMenuFunctionalAncestors.class,
                mappedBy = "ancestorMenuId",
-               cascade = CascadeType.ALL,
+               cascade = CascadeType.MERGE,
                fetch = FetchType.LAZY
        )
-       private List<FnMenuFunctionalAncestors> fnMenuFunctionalsAncestorMenuId = new ArrayList<>();
+       private Set<FnMenuFunctionalAncestors> fnMenuFunctionalsAncestorMenuId;
        @OneToMany(
                targetEntity = FnMenuFunctionalRoles.class,
                mappedBy = "menuId",
-               cascade = CascadeType.ALL,
+               cascade = CascadeType.MERGE,
                fetch = FetchType.LAZY
        )
-       private List<FnMenuFunctionalRoles> fnMenuFunctionalRoles = new ArrayList<>();
+       private Set<FnMenuFunctionalRoles> fnMenuFunctionalRoles;
 }