diff options
author | danielhanrahan <daniel.hanrahan@est.tech> | 2023-03-03 08:53:56 +0000 |
---|---|---|
committer | Daniel Hanrahan <daniel.hanrahan@est.tech> | 2023-04-14 16:17:33 +0000 |
commit | 546c144518fae01ecad966149c2930655ac44c2a (patch) | |
tree | 16d53d88071b3cfcf615f7cb2c41acaaae443604 /cps-ri/src/main/java/org/onap | |
parent | fb5f5c24db5c9fefa40a6d489ab533d3ad2b602f (diff) |
Use cascade delete in fragments table
- Add Liquibase change to cascade delete fragments
- Remove cascade delete logic from FragmentNativeRepository
- Remove unused method deleteFragmentEntity
Issue-ID: CPS-1617
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: Iecf4f3022b402e0328609ddc11a879c83e5d7f30
Diffstat (limited to 'cps-ri/src/main/java/org/onap')
-rw-r--r-- | cps-ri/src/main/java/org/onap/cps/spi/repository/FragmentNativeRepository.java | 1 | ||||
-rw-r--r-- | cps-ri/src/main/java/org/onap/cps/spi/repository/FragmentNativeRepositoryImpl.java | 33 |
2 files changed, 4 insertions, 30 deletions
diff --git a/cps-ri/src/main/java/org/onap/cps/spi/repository/FragmentNativeRepository.java b/cps-ri/src/main/java/org/onap/cps/spi/repository/FragmentNativeRepository.java index 13320bf763..bad68f7e58 100644 --- a/cps-ri/src/main/java/org/onap/cps/spi/repository/FragmentNativeRepository.java +++ b/cps-ri/src/main/java/org/onap/cps/spi/repository/FragmentNativeRepository.java @@ -26,7 +26,6 @@ import java.util.Collection; * This interface is used in delete fragment entity by id with child using native sql queries. */ public interface FragmentNativeRepository { - void deleteFragmentEntity(long fragmentEntityId); /** * Delete fragment entities for each supplied xpath. diff --git a/cps-ri/src/main/java/org/onap/cps/spi/repository/FragmentNativeRepositoryImpl.java b/cps-ri/src/main/java/org/onap/cps/spi/repository/FragmentNativeRepositoryImpl.java index 5c5458a039..04b7080def 100644 --- a/cps-ri/src/main/java/org/onap/cps/spi/repository/FragmentNativeRepositoryImpl.java +++ b/cps-ri/src/main/java/org/onap/cps/spi/repository/FragmentNativeRepositoryImpl.java @@ -31,30 +31,13 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class FragmentNativeRepositoryImpl implements FragmentNativeRepository { - private static final String DROP_FRAGMENT_CONSTRAINT - = "ALTER TABLE fragment DROP CONSTRAINT fragment_parent_id_fkey;"; - private static final String ADD_FRAGMENT_CONSTRAINT_WITH_CASCADE - = "ALTER TABLE fragment ADD CONSTRAINT fragment_parent_id_fkey FOREIGN KEY (parent_id) " - + "REFERENCES fragment (id) ON DELETE CASCADE;"; - private static final String ADD_ORIGINAL_FRAGMENT_CONSTRAINT - = "ALTER TABLE fragment ADD CONSTRAINT fragment_parent_id_fkey FOREIGN KEY (parent_id) " - + "REFERENCES fragment (id) ON DELETE NO ACTION;"; - @PersistenceContext private final EntityManager entityManager; @Override - public void deleteFragmentEntity(final long fragmentEntityId) { - entityManager.createNativeQuery( - addFragmentConstraintWithDeleteCascade("DELETE FROM fragment WHERE id = ?")) - .setParameter(1, fragmentEntityId) - .executeUpdate(); - } - - @Override public void deleteByAnchorIdAndXpaths(final int anchorId, final Collection<String> xpaths) { - final String queryString = addFragmentConstraintWithDeleteCascade( - "DELETE FROM fragment f WHERE f.anchor_id = ? AND (f.xpath IN (:parameterPlaceholders))"); + final String queryString = + "DELETE FROM fragment f WHERE f.anchor_id = ? AND (f.xpath IN (:parameterPlaceholders))"; executeUpdateWithAnchorIdAndCollection(queryString, anchorId, xpaths); } @@ -62,8 +45,8 @@ public class FragmentNativeRepositoryImpl implements FragmentNativeRepository { public void deleteListsByAnchorIdAndXpaths(final int anchorId, final Collection<String> listXpaths) { final Collection<String> listXpathPatterns = listXpaths.stream().map(listXpath -> listXpath + "[%").collect(Collectors.toSet()); - final String queryString = addFragmentConstraintWithDeleteCascade( - "DELETE FROM fragment f WHERE f.anchor_id = ? AND (f.xpath LIKE ANY (array[:parameterPlaceholders]))"); + final String queryString = + "DELETE FROM fragment f WHERE f.anchor_id = ? AND (f.xpath LIKE ANY (array[:parameterPlaceholders]))"; executeUpdateWithAnchorIdAndCollection(queryString, anchorId, listXpathPatterns); } @@ -86,12 +69,4 @@ public class FragmentNativeRepositoryImpl implements FragmentNativeRepository { } } - private static String addFragmentConstraintWithDeleteCascade(final String queryString) { - return DROP_FRAGMENT_CONSTRAINT - + ADD_FRAGMENT_CONSTRAINT_WITH_CASCADE - + queryString + ";" - + DROP_FRAGMENT_CONSTRAINT - + ADD_ORIGINAL_FRAGMENT_CONSTRAINT; - } - } |