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);