Hibernate Release Notes

Hibernate 6

V23.1.0-hib6
  • Compatible with Hibernate 6.6 which makes it incompatible with Hibernate 6.2 or earlier due to API changes in the Dialect class. We do not officially support Hibernate 6.3, 6.4 or 6.5.

  • Support for these functions in JPQL and HQL:

    • ascii() - convert a number in range 0-127 to its ASCII character, for values over 127 use char().

    • bitor(), bitand(), bitxor(), bitnot()

    • collate(field AS name AS case_insensitive) - collation is case sensitive by default

    • current_schema(), current_user(), database(), getconnectionId(), getransactionid()

    • date(), datediff(), datetrunc() and time()

    • Hyperbolic trigonometric functions: sinh(), cosh(), tanh().

    • round()

    • sign() now takes any numeric value, not just an integer.

    • str(num, length, decimals) - Converts a number to a string (as per SQL Server). There must be exactly three numeric arguments, otherwise str() acts like concat().

    • stddev_pop(), stddev_samp(), var_pop(), var_samp() - require NuoDB 7.0 or later.

    • timestampadd() and timestampdiff

    • trunc()

    • unaccent() - requires NuoDB 7.0 or later.

    • unicode()

  • You can declare your own User Defined Functions (UDFs) to Hibernate so that JPQL and HQL can use them. NuoDBDialect.registerCustomFunctions() is changed to no longer require subclassing.

  • Dialect.getFunctions() was removed by Hibernate 6. We have added similar functionality to NuoDBDialect.

  • Avoids or emulates some SQL constructs (generated by Hibernate) that were previously incompatible with NuoDB SQL.

  • Support for Outer Joins - requires NuoDB 7.0 or later.

V23.0.5-hib6
  • Compatible with Hibernate 6.2 and backwards compatible with Hibernate 6.1.

    • Includes all the enhancements of V23.1.0-hib6 except trunc() is not supported.

    • Some SQL constructs supported by V23.1.0-hib6 are not supported by this release. If you have problems with NuoDB rejecting some Hibernate generated SQL you may need to upgrade.

    • NOTE: This version of our JAR is incompatible with Hibernate 6.6 due to API changes in the Dialect class.

V23.0.4-hib6
  • Added support for the timeout query hint using (AvailableSettings.JAKARTA_LOCK_TIMEOUT, timeout), where timeout is the lock timeout in ms.

    Requires NuoDB 6.x, where x ≥ 0.
V23.0.3-hib6
  • Updated NuoDBDialect to indicate that:

    • NuoDB sorts null values first.

    • NuoDB does not support null precedence.

    • NuoDB supports subquery on mutating tables. For more information, see Dialect.supportsSubqueryOnMutatingTable().

    • NuoDB does not support subquery in SELECT.

  • Added lpad() and rpad() functions to pad a string with additional characters to reach a specified length. The padding character is optional. The default padding character is space.

  • Added the registerCustomFunctions() method to support custom functions. By default, the JPQL engine does not include any additional custom functions. To define and register custom functions, override the registerCustomFunctions() method in a subclass, add definitions of custom functions for your application, and include the custom function calls in JPQL queries.

    For example:

    public void registerCustomFunctions(
        SqmFunctionRegistry functionRegistry, TypeConfiguration typeConfiguration);
  • Added support for the sign() function in JPQL queries, for integer arguments only.

  • Added support for the SUPPRESS_VERSION_WARNING Java property. Set its value to true in the OS environment as an environment variable or as a Java System property to suppress the version warning printed when NuoDBDialect is created.

  • Improved the mapping of SQLException to JPAException for better error handling. For more information, see NuoDBDialect.NuoDbSQLExceptionConversionDelegate.

  • Updated NuoDBDialect to generate a warning if a lock-timeout hint is used with a positive timeout value since it is not supported in NuoDB. NOWAIT and SKIP_LOCKED are supported.

  • CHAR and NCHAR data types are now implemented as CHAR and NCHAR, respectively. In earlier releases, CHAR and NCHAR could optionally be implemented using the STRING column type. VARCHAR, NVARCHAR, LONGVARCHAR, and LONGNVARCHAR can optionally be implemented as STRING column types.

V23.0.2-hib6
  • When an application updates the same entity in a database, and the entity is versioned, the application reports, "BatchUpdateException: update conflict in table" instead of "ObjectOptimisticLockingFailureException:". (13810)
    The issue has been resolved.

V23.0.1-hib6
  • A SQL query with an UPDATE clause could report, "multi-column value only allowed in comparison operators".
    The issue has been resolved.

V23.0.0-hib6
  • Supports Hibernate 6.1 and JPA 3.1.

  • Hibernate 6 requires Java 11, but Spring 6 and Spring Boot 3 require Java 17.

Hibernate 5

V22.0.5-hib5
  • Added support for the timeout query hint using (AvailableSettings.JPA_LOCK_TIMEOUT, timeout), where timeout is the lock timeout in ms.

    Requires NuoDB 6.x, where x ≥ 0.
V22.0.4-hib5
  • Improved NuoDBDialect to correctly indicates that NuoDB support subquery on mutating table. For more information, see Dialect.supportsSubqueryOnMutatingTable().

  • Added support for the sign() function in JPQL queries, for integer arguments only.

  • Added support for the SUPPRESS_VERSION_WARNING Java property. Set its value to true in the OS environment as an environment variable or as a Java System property to suppress the version warning printed when NuoDBDialect is created.

  • Improved the mapping of SQLException to JPAException for better error handling. For more information, see NuoDBDialect.NuoDbSQLExceptionConversionDelegate.

  • Updated NuoDBDialect to generate a warning if a lock-timeout hint is used with a positive timeout value since it is not supported in NuoDB. NOWAIT and SKIP_LOCKED are supported.

  • CHAR and NCHAR data types are now implemented as CHAR and NCHAR, respectively. In earlier releases, CHAR and NCHAR could optionally be implemented using the STRING column type. VARCHAR, NVARCHAR, LONGVARCHAR, and LONGNVARCHAR can optionally be implemented as STRING column types.

V22.0.1-hib5
  • Fixes for UPDATE SKIP LOCKED and a few function definitions.

  • Adds uuid() function.

  • Refactored, commented and tidied NuoDBDialect class.

V22.0.0-hib5
  • Supports Hibernate 5.4 and JPA 2.1, Hibernate 5.6 and JPA 2.2.

  • Adds support for NuoDB database query hints and FOR UPDATE SKIP LOCKED and FOR UPDATE NOWAIT.

  • Adds isValidJson() and jsonUnquote(), listagg() and rownum() functions.

  • Adds era(), quarter(), dayofweek(), dayofyear(), weekofmonth(), weekofyear() functions.

V21.0.0-hib5
  • Supports Hibernate 5.4.

  • Enables mapping of String data-members to NuoDB’s STRING column type.

  • Removes direct dependency on Hibernate to avoid start up issues in Web/Application Server.

V20.0.0-hib5
  • Renumbered to allow the Hibernate JAR to be released independently of the NuoDB database.

  • Last update for this version 20.0.2-hib5.