A message like, "No property 'creat' found for type 'User' Did you mean ''created''" is now properly formatted as:
"No property 'creat' found for type 'User'; Did you mean 'created'".
Closes#2750.
This commit introduced support for registering GraalVM native reflection type hints for Querydsl Q types that target domain types used in the repository interface declaration.
At this point we only do a simple lookup for Q types based in the very same package that implement EntityPath.
More advanced configuration (eg. base package and type prefix), potentially available via EntityPathResolver are not taken into account as this would require eager bean resolution from the application context, which is likely to trigger additional infrastructure. In this case the user is required to register Q types manually.
Closes: #2721
Original pull request: #2743.
ReactiveWrappers is not tied to repositories so it does not need to reside in the repository.util package. This utility is now located in the data.util package for a better module design and to prevent package cycles.
See #2708
We now consider the the actual repository & fragment bean name when checking for existing bean definitions of default custom implementation beans. Previously, we used the repository interface name without considering the repository bean name.
Closes#2487.
Original Pull Request: #2488
We now replace ManagedTypes bean definitions with generated code that contain the discovered types to avoid class path scaning.
Closes: #2680
Original pull request: #2682.
We now fall back to the canonical constructor of records when we cannot disambiguate which constructor to use.
Also, reflect the Kotlin persistence creator mechanism.
Closes#2625
Original pull request: #2694.
We now consider the correct argument type instead of checking assignability of the actual property type against the input value.
Closes: #2649
Original Pull Request: #2650
As support for Joda Time has been removed from the PR below, the amount of data added has been reduced. So I change the initialCapacity of List from 5 to 3.
Closes#2668
We now try to read the types directly from the bean definition arguments first, before attempting to resolve the actual bean instance.
If resolving the bean fails, we currently only log an info message. This arrangement needs to be revisited.
See: #2593
By providing a factory method that accepts the MappingContext we can avoid the creation of additional support beans during the configuration phase for store modules implementing auditing.
See: #2593
By providing a factory method that accepts the MappingContext we can avoid the creation of additional support beans during the configuration phase for store modules implementing auditing.
See: #2593
Enables reachability analysis. Previously, the presence checks were using method invocations and the AOT processing isn't following the methods.
Original Pull Request: #2624
This avoids having to touch modules to add something like ImportRuntimeHints(AuditingHints.ReactiveAuditingRuntimeHints.class) to the enabled auditing annotations.
Original Pull Request: #2624
We now provide PropertiesBasedNamedQueriesFactoryBean to create PropertiesBasedNamedQueries directly bypassing indirections through PropertiesFactoryBean and PropertiesBasedNamedQueries.
Original Pull Request: #2624
We provide an initial set of runtime hints required to spin up data repositories on GraalVM native image.
Additionally we skip synthetic types during type inspection.
Original Pull Request: #2624
* Refactored logic in AOT infrastructure classes.
* Annotated AOT API with Spring's @NonNull and @Nullable annotations.
* Edited Javadoc.
* Introduced PredicateUtils abstract utility class encapsulating common Predicates on types and class members.
* Added comments for review and clarification.
Original Pull Request: #2624
This commit introduces initial support for framework 6 bases ahead of time processing of data components and adds extension points for module implementations.
See: #2593
Original Pull Request: #2624