Skip to content

4.0.0

Latest

Choose a tag to compare

@mp911de mp911de released this 14 Nov 13:00
· 2 commits to main since this release
8e448a9

📗 Links

⭐ New Features

  • Switch to MetadataReaderFactory in DefaultProjectionInformation #3402
  • Enable Streamable for Pageable use #3397
  • Move Method string rendering from QueryCreationException to ReflectionUtils #3396
  • Move PropertyPath and TypeInformation types to core package #3393
  • Allow overriding DateTimeProvider via Bean Definition #3385
  • Use precompiled regex for PropertyMatch.namePattern #3376
  • Improve PropertyMatch performance using precompiled regex patterns #3375
  • Consistent factory methods for QueryCreationException #3373
  • Refine TypeCollector usage and predicates #3363
  • Refine filters for TypeCollector and ManagedTypesBeanRegistrationAotProcessor contributions #3362
  • Add JavaPoet enhancements #3357
  • Add ExpressionMarker abstraction for obtaining enclosing method in AOT generated code #3338
  • Expose MethodParameters in AotQueryMethodGenerationContext #3334
  • Enable AOT repositories by default #3323
  • Include generated PersistentPropertyAccessorFactory and EntityInstantiator classes during AOT processing #3318
  • Defer MappingContext access inPersistentEntities #3310
  • Log a warning if param not annotated with @ProjectedPayload #3303
  • Log warning when param is not annotated with @ProjectedPayload (4.0.x) #3300
  • Upgrade to Jackson 3 #3292
  • Add support for ConfigurationSource and Dynamic Projections #3289
  • Refine customization of EntityInformation #3288
  • Introduce SearchResult and SearchResults #3285
  • Refine Repository Composition retrieval during AOT processing #3282
  • Capture repository configuration from registered beans #3279
  • Add getRequiredName and hasName API to org.springframework.data.mapping.Parameter #3272
  • Add LocalVariableNameFactory #3271
  • Introduce AOT context sensitive VariableNameFactory #3270
  • Refine AOT Repositories infrastructure #3267
  • Add support for AOT Repositories #3265
  • Remove ListenableFuture support #3232
  • Mark API with @Contract and @CheckReturnValue annotations #3210
  • Remove @Deprecated API #3208
  • Introduce @Contract and @CheckReturnValue annotations #3195
  • Allow overriding DateTimeProvider via Bean Definition #3177
  • Migrate to JSpecify annotations for nullability constraints #3170
  • Use Spring's Nullness utility to determine JSpecify nullness #3100
  • Introduce org.springframework.data.mapping.Parameter.getRequiredName() and Parameter.hasName() #3088
  • Include generated property accessors and entity instantiator bytecode in AOT classes #2595

🐞 Bug Fixes

  • Filter bridge methods from DefaultCrudMethods lookup #3401
  • Register native hints for (at)Reflective annotated methods of domain types #3391
  • Add test cases for Kotlin private constructor instantiation edge cases #3390
  • Failed to instantiate bug when a class with private constructor has value class constructor param #3389
  • @Reflective not always considered on domain types #3387
  • Fix TypeName resolution of method return type #3374
  • Fix potential race condition in Lazy.getNullable() #3368
  • ClassGeneratingPropertyAccessorFactory fails when type hierarchy defines a field with the same name twice #3361
  • Avoid attempts to override AOT generated query method metadata. #3355
  • AOT Repositories: OwnerRepository.json already exists #3354
  • Add missing @Nullable annotations to QueryByExampleExecutor.findBy(…) and QuerydslPredicateExecutor.findBy(…) #3346
  • Use generated classname for writing aot repository content #3345
  • TypeInformation.OBJECT is null when only ClassTypeInformation.COLLECTION has been accessed #3340
  • Spring Data AOT Repositories failed in the AOT processed Spring Boot tests with multiple contexts being involved #3339
  • Use getDeclaredConstructor(…) in RepositoryBeanDefinitionReader to avoid failures due to package-private constructors #3325
  • CustomConversions issues a warning for asymmetric converters when converting from a List #3306
  • Use mutable list to collect items from Stream for reversal #3304
  • DeferredRepositoryInitializationListener is registered multiple times #3287
  • Modify it to avoid adding runtimeHints for primitive types and array types #3284
  • Avoid multiple DeferredRepositoryInitializationListener registrations in RepositoryConfigurationDelegate #3219
  • NullPointerException during AOT processing when MongoDB domain model #4958

📔 Documentation

  • Remove duplicate documentation heading identifiers #3399
  • Update documentation #3384
  • Update Documentation #3383
  • Document placeholder and Ant-style pattern support for @Enable…Repositories #3366
  • Remove EntityInformation customization from Entity State Detection Strategies #3364
  • Example code in the scrolling document might not consume every element in the database #3352
  • Polish README #3314
  • Refine version properties for documentation build #2638

🔨 Dependency Upgrades

  • Upgrade to jMolecules 2025.0.0 BOM #3403
  • Explicitly declare jMolecules DDD dependency #3379
  • Upgrade to XMLBeam 1.4.26 #3343
  • Upgrade to XMLBeam 1.4.25 #3341
  • Upgrade to Maven Wrapper 3.9.11 #3328
  • Reinstate version placeholder usage for RxJava 3 #3295

❤️ Contributors

We'd like to thank all the contributors who worked on this release!