From 05e97441ad192b69051fbb67263284eb99ee1c41 Mon Sep 17 00:00:00 2001 From: danielhanrahan Date: Fri, 22 Nov 2024 12:50:19 +0000 Subject: Don't handle root xpath in getFragmentEntity getFragmentEntity is an internal method only used for resovling parent xpaths. The root xpath handling is never reachable. - Remove root xpath handling in getFragmentEntity - Clean up unneeded FragmentRepository code Issue-ID: CPS-2511 Signed-off-by: danielhanrahan Change-Id: I910065bdb2e7c5fbb7c67af87f3f68af6c0fd4e0 --- .../java/org/onap/cps/ri/CpsDataPersistenceServiceImpl.java | 8 ++------ .../java/org/onap/cps/ri/repository/FragmentRepository.java | 13 ++----------- 2 files changed, 4 insertions(+), 17 deletions(-) (limited to 'cps-ri/src/main/java/org') diff --git a/cps-ri/src/main/java/org/onap/cps/ri/CpsDataPersistenceServiceImpl.java b/cps-ri/src/main/java/org/onap/cps/ri/CpsDataPersistenceServiceImpl.java index b7e50815e6..bdbdc7cf36 100644 --- a/cps-ri/src/main/java/org/onap/cps/ri/CpsDataPersistenceServiceImpl.java +++ b/cps-ri/src/main/java/org/onap/cps/ri/CpsDataPersistenceServiceImpl.java @@ -543,12 +543,8 @@ public class CpsDataPersistenceServiceImpl implements CpsDataPersistenceService } private FragmentEntity getFragmentEntity(final AnchorEntity anchorEntity, final String xpath) { - final FragmentEntity fragmentEntity; - if (isRootXpath(xpath)) { - fragmentEntity = fragmentRepository.findOneByAnchorId(anchorEntity.getId()).orElse(null); - } else { - fragmentEntity = fragmentRepository.getByAnchorAndXpath(anchorEntity, getNormalizedXpath(xpath)); - } + final FragmentEntity fragmentEntity = + fragmentRepository.findByAnchorIdAndXpath(anchorEntity.getId(), getNormalizedXpath(xpath)); if (fragmentEntity == null) { throw new DataNodeNotFoundException(anchorEntity.getDataspace().getName(), anchorEntity.getName(), xpath); } diff --git a/cps-ri/src/main/java/org/onap/cps/ri/repository/FragmentRepository.java b/cps-ri/src/main/java/org/onap/cps/ri/repository/FragmentRepository.java index 9598230cdb..a8c1fd2d4e 100755 --- a/cps-ri/src/main/java/org/onap/cps/ri/repository/FragmentRepository.java +++ b/cps-ri/src/main/java/org/onap/cps/ri/repository/FragmentRepository.java @@ -25,12 +25,10 @@ package org.onap.cps.ri.repository; import java.util.Collection; import java.util.List; -import java.util.Optional; import org.onap.cps.ri.models.AnchorEntity; import org.onap.cps.ri.models.DataspaceEntity; import org.onap.cps.ri.models.FragmentEntity; import org.onap.cps.ri.utils.EscapeUtils; -import org.onap.cps.spi.exceptions.DataNodeNotFoundException; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; @@ -41,12 +39,8 @@ import org.springframework.stereotype.Repository; public interface FragmentRepository extends JpaRepository, FragmentRepositoryCpsPathQuery, FragmentPrefetchRepository { - Optional findByAnchorAndXpath(AnchorEntity anchorEntity, String xpath); - - default FragmentEntity getByAnchorAndXpath(final AnchorEntity anchorEntity, final String xpath) { - return findByAnchorAndXpath(anchorEntity, xpath).orElseThrow(() -> - new DataNodeNotFoundException(anchorEntity.getDataspace().getName(), anchorEntity.getName(), xpath)); - } + @Query(value = "SELECT * FROM fragment WHERE anchor_id = :anchorId AND xpath = :xpath", nativeQuery = true) + FragmentEntity findByAnchorIdAndXpath(@Param("anchorId") long anchorId, @Param("xpath") String xpath); @Query(value = "SELECT * FROM fragment WHERE anchor_id = :anchorId AND xpath IN (:xpaths)", nativeQuery = true) @@ -84,9 +78,6 @@ public interface FragmentRepository extends JpaRepository, List findByAnchorIdsAndXpathIn(@Param("anchorIds") Collection anchorIds, @Param("xpaths") Collection xpaths); - @Query(value = "SELECT * FROM fragment WHERE anchor_id = :anchorId LIMIT 1", nativeQuery = true) - Optional findOneByAnchorId(@Param("anchorId") long anchorId); - @Modifying @Query(value = "DELETE FROM fragment WHERE anchor_id IN (:anchorIds)", nativeQuery = true) void deleteByAnchorIdIn(@Param("anchorIds") Collection anchorIds); -- cgit 1.2.3-korg