Persisting data nodes (fragments tree structure)
[cps.git] / cps-ri / src / main / java / org / onap / cps / spi / entities / FragmentEntity.java
index d155748..6776528 100755 (executable)
@@ -22,6 +22,8 @@ package org.onap.cps.spi.entities;
 
 import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
 import java.io.Serializable;
+import java.util.Set;
+import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
@@ -30,10 +32,13 @@ import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
+import javax.persistence.OneToMany;
 import javax.persistence.OneToOne;
+import javax.persistence.Table;
 import javax.validation.constraints.NotNull;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
+import lombok.Data;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
@@ -44,12 +49,14 @@ import org.hibernate.annotations.TypeDefs;
 /**
  * Entity to store a fragment.
  */
+@Data
 @Getter
 @Setter
 @AllArgsConstructor
 @NoArgsConstructor
 @Builder
 @Entity
+@Table(name = "fragment")
 @TypeDefs({@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)})
 public class FragmentEntity implements Serializable {
 
@@ -76,7 +83,7 @@ public class FragmentEntity implements Serializable {
     @JoinColumn(name = "anchor_id")
     private AnchorEntity anchor;
 
-    @OneToOne(fetch = FetchType.LAZY)
+    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
     @JoinColumn(name = "parent_id")
-    private FragmentEntity parentFragment;
+    private Set<FragmentEntity> childFragments;
 }