[Spring Data Cosmos] Fix GROUP BY aggregate query exception (#43912)#48786
Draft
jeet1995 wants to merge 1 commit intoAzure:mainfrom
Draft
[Spring Data Cosmos] Fix GROUP BY aggregate query exception (#43912)#48786jeet1995 wants to merge 1 commit intoAzure:mainfrom
jeet1995 wants to merge 1 commit intoAzure:mainfrom
Conversation
…n types (Azure#43912) MappingCosmosConverter.read() crashed with 'Entity is null' when the return type was not a Cosmos-mapped entity (ObjectNode, Map, DTO, Object). The mapping context either returned null or threw when introspecting non-entity classes. Changes: - Guard mappingContext.getPersistentEntity() with try-catch in read() so non-entity types fall through with null entity - Replace Assert.notNull(entity) in readInternal() with graceful fallback to direct Jackson deserialization via objectMapper.treeToValue() - Add AggregateDto test domain class for non-entity deserialization - Add 4 unit tests: ObjectNode, Map, plain DTO, and Object return types - Update CHANGELOG.md with bug fix entry Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue
Fixes #43912
Problem
@query\ methods with GROUP BY + aggregates (COUNT, SUM) crash with \IllegalArgumentException: Entity is null\ in \MappingCosmosConverter.readInternal()\ when the return type is not a Cosmos-mapped entity (e.g., \ObjectNode, \Map, DTO).
Fix
Replaced the hard assertion in \MappingCosmosConverter.read()\ with a graceful fallback to direct Jackson deserialization via \objectMapper.treeToValue()\ when the mapping context has no persistent entity for the target type. This enables non-entity return types for aggregate queries without affecting existing entity-mapped queries.
Testing
Supported return types after fix