In case a derived query uses a DTO, we now create a select clause that uses a constructor expression for the DTO type. This wasn't supported before and expexted either an interface-based projection or an explicit query using a constructor expression.
Fixes#2363.
For some reason, EclipseLinkNamespaceUserRepositoryTests freezes. Can't figure out the source, so we are disabling it for now.
See #2329
Original pull request: #2345.
Rename Projector to EntityGraphFactory. Remove QuerydslProjector and TypedQueryProjector. Remove MappingContext creation.
See #2329
Original pull request: #2345.
When a property path based projection is specified we still return the root entity.
But we do provide a fetchgraph.
The JPA implementation will (should) load only the specified attributes eagerly.
It most likely will also load all other attributes from all selected tables.
Once we have infrastructure in place for for multilevel projections the same approach can and should be used for those.
Currently this is not the case.
Closes#2329
Original pull request: #2345.
We now consider `@Query(countName = "…")` when the actual query is a string query or named query using Properties to declare its query. Named queries using JPA named queries remain unchanged.
Closes#2217
We now use the IdClass type for lookups when the entity defines a `@IdClass`. Previously, we uses the type of the defined singular identifier attribute which lead to invalid queries.
Closes#2330
Fix version reference to Spring Data Commons. Avoid stream creation when fetching all/one/first element. Move off deprecated API. Add override comments. Add null guargs.
See #2294
Original pull request: #2326.
Add support for both QueryByExampleExecutor and QuerydslPredicateExecutor. This is used in SimpleJpaRepository and QuerydslJpaPredicateExecutor, resulting in various test cases proving support by both examples and Querydsl predicates.
NOTE: Class-based DTOs are NOT supported yet.
See #2294
Original pull request: #2326.
We now no longer use compiled parameter names for tests to avoid interference with Eclipselink's mechanism of using these improperly for stored procedure calls. Especially the fact that a parameter is named "in" lets the database consider using an IN clause instead of the parameter name.
When configuring the compile plugin, we also need to ensure that the AspectJ plugin post-processes the compiled classes and doesn't run before the Maven compiler plugin.
Closes: #2298
See also https://github.com/spring-projects/spring-data-build/issues/1513
* Introduce Testcontainers as the mechanism to test against real data stores.
* Alter CI to handle running Testcontainers in reduced privilege mode.
* Run the data store specific test cases ONLY for the baseline Java 8 test execution.
See #2256.