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
6d5ceef

📗 Links

⭐ New Features

  • Add support for returning Streamable from AOT repository methods #4070
  • Consistently use InvalidDataAccessApiUsageException for JpaOrder validation #4062
  • Remove deprecated API that is marked for removal #4057
  • Revise PredicateSpecification for improved reuse #4035
  • Text block queries are stored twice in hibernate HQL interpretation cache #4034
  • Add TypeCollectorFilters to filter $$_hibernate fields and methods #4014
  • Allow customization of @RevisionTimestamp property name #4003
  • Reintroduce Specification.where(Specification) #3998
  • Add possbility to return Entity from delete<...>ById(id: MyId) method #3995
  • Reintroduce Specification.where(Specification) #3992
  • Backport Specification.unrestricted() to 3.5.x #3942
  • Replace regex with startsWith / endsWith check for LIKE pattern detection #3932
  • Deprecate SharedEntityManager bean registration in favor of JPA 3.2 qualified EntityManager injection #3926
  • Remove unnecessary join when filtering on relationship id #3922
  • Enable AOT repository generation by default #3904
  • Make identification variables and the SELECT clause in JPQL optional #3903
  • Make identification variables and the SELECT clause in JPQL optional #3902
  • Enable AOT repositories by default #3899
  • Avoid early EntityManager initialization during PersistenceProvider lookup #3885
  • Add support for JSON and XML Set-Returning-Functions #3883
  • Support HQL LIMIT/OFFSET without ordering #3882
  • Add support for Set-Returning Functions (SRF) in HQL parser #3879
  • Add delete(Predicate) to QuerydslJpaPredicateExecutor #3878
  • Add delete(Predicate) to QuerydslJpaPredicateExecutor #3877
  • Use isolated Hibernate EntityManager for AOT contribution #3876
  • Use LocalVariableNameFactory in repository contributor #3875
  • Provide JpaRepositoryFragmentsContributor in JPA Repository Factory and Repository Factory Bean #3874
  • Explore Search Results #3868
  • Add support for Hibernate 7 Set-returning Functions in from Clause #3864
  • Use parameter names in derived JPQL queries #3857
  • Capture @EnableJpaRepositories configuration for AOT processing #3838
  • Add support for JPA AOT Repositories #3830
  • Migrate to JSpecify annotations for nullability constraints #3781
  • Migrate to JSpecify annotations for nullability constraints #3745
  • Remove commons-logging exclusion #3736
  • Support custom countSpec in SimpleJpaRepository.findAll #3727
  • Switch to JPA 3.2 Query.getSingleResultOrNull() #3701
  • Upgrade to JPA 3.2 #3695
  • Adopt to deprecation removals in Commons #3683
  • Replace derived CriteriaQuery with String-based queries #3653
  • Refactor DeclaredQuery to decouple the query definition from its introspected state #3622
  • Replace derived CriteriaQuery with String-based JPQL queries #3588
  • Consider NULLS precedence using Sort for Criteria Queries #3587
  • Refine Specification API #3578
  • Introduce QueryEnhancerSelector to configure which QueryEnhancerFactory to use #3527
  • Revise Specification API #3521
  • Use provider built-in result count to reuse query if possible #3456
  • Prevent early EntityManager access to avoid conflicts with Hibernate-native multi-tenancy #3425
  • Skip JOIN for predicates that compare the primary key of a @ManyToOne relationship #3349
  • java.lang.IllegalStateException is thrown by invoking findBy method #3294
  • Make JpaSort.unsafe() operational for HQL, EQL, and JPQL #3187
  • Translate JpaSort.unsafe(…) used with Specifications to order-by Expression #3172
  • Update JPQL and HQL parsers with newly introduced JPA 3.2 keywords #3136
  • Allow customization of @RevisionTimestamp property name #2850
  • Improve query method validation exceptions for declared queries #2738
  • Avoid re-wrapping query validation exceptions into IllegalArgumentException it they already are one #2736
  • Move PropertyPath and TypeInformation types to core package #3393
  • Refine AOT Repositories infrastructure #3267

🐞 Bug Fixes

  • JpqlQueryBuilder does not consider @Entity name #4036
  • Generated JPQL uses non-standard fully-qualified entity names #4032
  • Evaluate entity name for StringAotQuery from EntityMetadata #4030
  • StringAotQuery should evaluate entity name from EntityMetadata #4029
  • Consistent handling of Specification.unrestricted() in Specification.not(..) #4024
  • Inconsistency in Specification.unrestricted() semantics #4023
  • deleteBy returning primitive number queries fail with ClassCastException #4015
  • EQL Parser fails using nested aggregation function arguments #4013
  • HQL Renderer renders CTE with CYCLE without space between SET and identifier #4012
  • Fix unpaged revision query #4000
  • Revision repository findRevisions throws exception when using Pageable.unpaged() #3999
  • JPQL /* ... */ comments in @Query fail to parse when migrating from Spring Boot 3.3.5 to Spring Boot 3.5.5 / Spring Data JPA (HQL parser mismatch on /) #3997
  • Qualify identifier used in SimpleJpaRepository.deleteAllByIdInBatch(…) JPQL #3993
  • EclipseLink fails resolving unqualified identifier property using IN on batch delete by Id #3990
  • Joins with identical property names are not rendered by JpqlQueryBuilder #3989
  • Type Constraint Mismatch in QueryByExampleExecutor.findBy() #3986
  • Optimized QueryUtils.applyAndBind(…) using IN(entities)does not work with EclipseLink #3983
  • ExpressionBasedStringQuery does not expand #{#entityName} for native queries #3979
  • Add missing @Nullable annotations to JpaSpecificationExecutor.findBy(…) #3974
  • Returning Converted entity properties cause DTO projection rewrite #3929
  • PersistenceProvider.fromEntityManagerFactory(…) throws NullPointerException using Hotswap Agent #3923
  • QueryUtils fails to detect aliases when SELECT items are comma-separated without spaces #3911
  • JpaSpecificationExecutor.findBy(…) returns join product of nested relations #3908
  • Postgresql jsonb operator ?| erroneously detected as parameter bind marker #3907
  • DTO query rewriting renders invalid queries #3895
  • EQL parser fails to parse LIKE with ESCAPE clause #3873
  • Removes PlainSelect casting #3870
  • JSqlParserQueryEnhancer fails with ClassCastException during query introspection #3869
  • JPQL and EQL parser reject CAST function #3863
  • DTO Projection rewriting rewrites queries returning properties to DTO form #3862
  • Fix handling of null predicate in Specification.not() #3856
  • Specification.not() fails with NullPointerException when other Specification returns null #3849
  • QueryRewriter not applied to count queries #3801

📔 Documentation

  • Update Documentation for Release #4066
  • Update Documentation #4065
  • Fix typos #4033
  • Fix typo in javadoc #3955
  • doc: fix typo in README.adoc #3953
  • Fix typos in query-methods.adoc #3912
  • Update documentation #3384
  • Document placeholder and Ant-style pattern support for @Enable…Repositories #3366
  • Refine version properties for documentation build #2638

🔨 Dependency Upgrades

  • Upgrade to jMolecules 2025.0.0 BOM #4076
  • Upgrade to Hibernate 7.1.7.Final #4074
  • Upgrade JDBC test driver dependencies #4064
  • Upgrade to Hibernate 7.1.5.Final #4063
  • Upgrade to Eclipselink 5.0.0-B11 #4045
  • Upgrade to Hibernate 7.1.4.Final #4044
  • Upgrade to Hibernate 7.1.1.Final #4016
  • Upgrade to Eclipselink 5.0.0-B10 #4006
  • Upgrade to Hibernate 7.1.0.Final #3969
  • Upgrade to Hibernate 7.1.0.CR2 #3964
  • Upgrade to Maven Wrapper 3.9.11 #3945
  • Upgrade to Eclipselink 5.0.0-B09 #3939
  • Upgrade to JSqlparser 5.3 #3938
  • Upgrade to Hibernate 7.0.6.Final #3933
  • Upgrade to Hibernate 7.0.3.Final #3925
  • Upgrade to PGJDBC Driver 42.7.7 #3914
  • Upgrade to Hibernate 7.0.0 #3896
  • Upgrade to Hibernate 7.0 CR2 #3887
  • Upgrade to Oracle OJDBC 23.8.0.25.04 #3881
  • Upgrade to Eclipselink 5.0.0-B07 #3837
  • Upgrade to Hibernate 7.0.0.Beta5 #3836
  • Upgrade to Hibernate 7.0 Beta3 #3723
  • Upgrade to JPA 3.2 #3673
  • Upgrade to Eclipselink 5.0.0-B05 #3672
  • Upgrade to Hibernate 7.0 Beta1 #3671
  • Upgrade to Testcontainers 2.0 #2688

❤️ Contributors

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