X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-ri%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fcps%2Fspi%2Fentities%2FFragmentEntity.java;h=12f42f2b7eac966add32a7620c20dec1001f770a;hb=477bd46874d2c8266007358f9ca335b0442cea18;hp=53ceaaae1f8fb066043642b9695b69c842731c49;hpb=d1ea2af79952a41264552247441410fc24cd48f5;p=cps.git diff --git a/cps-ri/src/main/java/org/onap/cps/spi/entities/FragmentEntity.java b/cps-ri/src/main/java/org/onap/cps/spi/entities/FragmentEntity.java index 53ceaaae1..12f42f2b7 100755 --- a/cps-ri/src/main/java/org/onap/cps/spi/entities/FragmentEntity.java +++ b/cps-ri/src/main/java/org/onap/cps/spi/entities/FragmentEntity.java @@ -1,7 +1,7 @@ -/*- +/* * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. All rights reserved. - * Modifications Copyright (C) 2021 Pantheon.tech + * Copyright (C) 2020-2023 Nordix Foundation. + * Modifications Copyright (C) 2021 Pantheon.tech * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,31 +21,30 @@ package org.onap.cps.spi.entities; -import com.vladmihalcea.hibernate.type.json.JsonBinaryType; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotNull; import java.io.Serializable; import java.util.Set; -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -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.EqualsAndHashCode; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import org.hibernate.annotations.Type; -import org.hibernate.annotations.TypeDef; -import org.hibernate.annotations.TypeDefs; +import lombok.ToString; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.type.SqlTypes; /** * Entity to store a fragment. @@ -58,7 +57,7 @@ import org.hibernate.annotations.TypeDefs; @Builder @Entity @Table(name = "fragment") -@TypeDefs({@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)}) +@EqualsAndHashCode(onlyExplicitlyIncluded = true) public class FragmentEntity implements Serializable { private static final long serialVersionUID = 7737669789097119667L; @@ -69,21 +68,23 @@ public class FragmentEntity implements Serializable { @NotNull @Column(columnDefinition = "text") + @EqualsAndHashCode.Include private String xpath; - @Type(type = "jsonb") + @Column(name = "parent_id") + private Long parentId; + + @JdbcTypeCode(SqlTypes.JSON) @Column(columnDefinition = "jsonb") private String attributes; @NotNull @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "dataspace_id") - private DataspaceEntity dataspace; - - @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "anchor_id") + @EqualsAndHashCode.Include private AnchorEntity anchor; + @ToString.Exclude @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) @JoinColumn(name = "parent_id") private Set childFragments;