From 83c63e92b19d5f31155dfd50974455ff076fe786 Mon Sep 17 00:00:00 2001 From: sonika-shah <58761340+sonika-shah@users.noreply.github.com> Date: Tue, 7 Oct 2025 16:14:13 +0530 Subject: [PATCH] Minor:refactor fetching assetsCount for individual fields (#23762) --- .../service/jdbi3/DomainRepository.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/DomainRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/DomainRepository.java index 6f16234dd14..c54ecace34e 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/DomainRepository.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/DomainRepository.java @@ -93,7 +93,7 @@ public class DomainRepository extends EntityRepository { @Override public void setFields(Domain entity, Fields fields) { entity.withAssets(fields.contains(FIELD_ASSETS) ? getAssets(entity) : null); - entity.withAssetsCount(fields.contains(FIELD_ASSETS_COUNT) ? getAssets(entity).size() : 0); + entity.withAssetsCount(fields.contains(FIELD_ASSETS_COUNT) ? getAssetsCount(entity) : null); entity.withParent(getParent(entity)); } @@ -192,6 +192,23 @@ public class DomainRepository extends EntityRepository { return result.entities(); } + private int getAssetsCount(Domain entity) { + if (inheritedFieldEntitySearch == null) { + LOG.warn("Search is unavailable for domain assets count. Returning 0 for consistency."); + return 0; + } + + InheritedFieldQuery query = InheritedFieldQuery.forDomain(entity.getFullyQualifiedName()); + return inheritedFieldEntitySearch.getCountForField( + query, + () -> { + LOG.warn( + "Search fallback triggered for domain {} count. Returning 0 for consistency.", + entity.getFullyQualifiedName()); + return 0; + }); + } + public BulkOperationResult bulkAddAssets(String domainName, BulkAssets request) { Domain domain = getByName(null, domainName, getFields("id")); return bulkAssetsOperation(domain.getId(), DOMAIN, Relationship.HAS, request, true);