KotlinCopyMethod.shouldUsePublicCopyMethod(…) now considers single-association arrangements. Also, the method now early exists if pre-conditions aren't met.
Closes#3131
We now detect that the consumption of the events published during a persistence operation has produced new event instances that would go unpublished and raise an explaining exception. Previously such a scenario would've resulted in a ConcurrentModificationException.
We primarily reject such a scenario as handling the additional event would extend our convenience mechanism over the publishing scope a direct 1:1 replacement with ApplicationEventPublisher would've achieved.
Fixes GH-3116.
We now no longer declare cacheRepositoryFactory as synchronized to avoid locking. Additionally, simplify the flow and reuse computed values as much as possible.
Closes#3126
We now consider the declaring class to properly resolve type variable references for the result post-processing of a query method result.
Previously, we attempted to resolve the return type without considering the actual repository class resolving always Object instead of the type parameter.
Closes#3125
Removing `isSubsequentPage`. It is another name for !isFirstPage suggesting a different meaning which isn't there.
Extracting `if (isFirstPage(pageable)) {`, further structuring the decision tree.
See #3103
Original pull request #3113
Delegate annotation attribute resolution to configured BeanNameGenerator resolving method and test for enabling reactive repositories.
Original Pull Request: #3083
We now accept a dedicated BeanNameGenerator in our Enable…Repositories annotations to override the importBeanNameGenerator.
Closes: #3082
Original Pull Request: #3083
Provide load-factor to sets with well-known sizing, move annotation auditing metadata cache to DefaultAuditableBeanWrapperFactory to avoid strong static references.
See #3067
Original pull request: #3073
We now populate DTO properties whose are identified as associations. While uncommon, as typically entities declare assocations using entities, associations can be identified as types and so these are now considered when populating properties.
Closes#3104
The (Reactive)PageableHandlerMethodArgumentResolver now falls back to a unpaged Pageable instance with a resolved sort if the the resolved Pageable is unpaged.
Fixes: GH-3094
Original pull request: GH-2865
Spring Data modules might override, and, by that, fix some of the generic type parameters exposed by RepositoryFactoryBeanSupport. We now more thoroughly walk through them to consider the ones expanded already and automatically expand the remaining ones with either the types found on the user repository interface or the unresolved type variable.
Ticket: GH-3074.
We now also forward the domain and identifier information detected on the repository to the target type declared for the repository factory bean definition.
Fixes GH-3074.
We now calculate information about query methods in RepositoryInformationSupport lazily and keep it around to avoid repeated calculations that involve traversals over declared method and Stream allocations.
Fixes GH-3066.
These types are expected to behave like maps and collections and should not carry properties.
The only exception are types implementing Streamable as Streamable can be used in domain types.
Resolves: #3056
Original Pull Request: #3059