From 2830723b8c5d5bb40c171c88f055adbc1a808f68 Mon Sep 17 00:00:00 2001 From: danielhanrahan Date: Fri, 26 Apr 2024 10:09:54 +0100 Subject: Faster module searches (CPS-2190 #3) This greatly improves performance of module searches by eliminating unneeded SQL queries via Hibernate lazy fetching. Issue-ID: CPS-2190 Signed-off-by: danielhanrahan Change-Id: Ie9e65017d0027366456f1741cc37b10679317b25 --- .../cps/spi/impl/CpsAdminPersistenceServiceImpl.java | 7 +++---- .../org/onap/cps/spi/repository/AnchorRepository.java | 16 ++++++++-------- 2 files changed, 11 insertions(+), 12 deletions(-) (limited to 'cps-ri') diff --git a/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceImpl.java b/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceImpl.java index d697fd53fc..56a046496e 100755 --- a/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceImpl.java +++ b/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceImpl.java @@ -131,11 +131,10 @@ public class CpsAdminPersistenceServiceImpl implements CpsAdminPersistenceServic } @Override - public Collection queryAnchors(final String dataspaceName, final Collection inputModuleNames) { + public Collection queryAnchorNames(final String dataspaceName, final Collection inputModuleNames) { final DataspaceEntity dataspaceEntity = dataspaceRepository.getByName(dataspaceName); - final Collection anchorEntities = anchorRepository - .getAnchorsByDataspaceIdAndModuleNames(dataspaceEntity.getId(), inputModuleNames, inputModuleNames.size()); - return anchorEntities.stream().map(CpsAdminPersistenceServiceImpl::toAnchor).collect(Collectors.toSet()); + return anchorRepository.getAnchorNamesByDataspaceIdAndModuleNames(dataspaceEntity.getId(), inputModuleNames, + inputModuleNames.size()); } @Override diff --git a/cps-ri/src/main/java/org/onap/cps/spi/repository/AnchorRepository.java b/cps-ri/src/main/java/org/onap/cps/spi/repository/AnchorRepository.java index 19646c5239..d78a016c2e 100755 --- a/cps-ri/src/main/java/org/onap/cps/spi/repository/AnchorRepository.java +++ b/cps-ri/src/main/java/org/onap/cps/spi/repository/AnchorRepository.java @@ -72,7 +72,7 @@ public interface AnchorRepository extends JpaRepository { @Query(value = """ SELECT - anchor.* + anchor.name FROM yang_resource JOIN schema_set_yang_resources ON schema_set_yang_resources.yang_resource_id = yang_resource.id @@ -89,15 +89,15 @@ public interface AnchorRepository extends JpaRepository { HAVING COUNT(DISTINCT module_name) = :sizeOfModuleNames """, nativeQuery = true) - Collection getAnchorsByDataspaceIdAndModuleNames(@Param("dataspaceId") int dataspaceId, - @Param("moduleNames") String[] moduleNames, - @Param("sizeOfModuleNames") int sizeOfModuleNames); + Collection getAnchorNamesByDataspaceIdAndModuleNames(@Param("dataspaceId") int dataspaceId, + @Param("moduleNames") String[] moduleNames, + @Param("sizeOfModuleNames") int sizeOfModuleNames); - default Collection getAnchorsByDataspaceIdAndModuleNames(final int dataspaceId, - final Collection moduleNames, - final int sizeOfModuleNames) { + default Collection getAnchorNamesByDataspaceIdAndModuleNames(final int dataspaceId, + final Collection moduleNames, + final int sizeOfModuleNames) { final String[] moduleNamesArray = moduleNames.toArray(new String[0]); - return getAnchorsByDataspaceIdAndModuleNames(dataspaceId, moduleNamesArray, sizeOfModuleNames); + return getAnchorNamesByDataspaceIdAndModuleNames(dataspaceId, moduleNamesArray, sizeOfModuleNames); } @Modifying -- cgit 1.2.3-korg