Hibernate 5.0 Changelog ======================= Note: Please refer to JIRA to learn more about each issue. Changes in 5.0.0.CR3 (July 29, 2015) ------------------------------------------------------------------------------------------------------------------------ https://hibernate.atlassian.net/projects/HHH/versions/20350 ** Sub-task * [HHH-9938] - Enhance field access ** Bug * [HHH-5255] - Merge detached entity failed when the instrumented lazy property is initialized * [HHH-7573] - Lazy properties are not processed properly after a PreUpdate callback * [HHH-7898] - Regression on org.hibernate.cache.infinispan.query.QueryResultsRegionImpl.put(Object, Object) * [HHH-9244] - NPE in bindCollectionSecondPass * [HHH-9637] - Join is reused when 2 explicit joins are used for the same ToOne association * [HHH-9906] - The {{JdbcEnvironmentImpl(ServiceRegistryImplementor serviceRegistry, Dialect dialect)}} constructor form does not handle global/auto quoting properly. * [HHH-9907] - Bytecode enhancer fails on windows * [HHH-9910] - Schema migration (update) problems with catalog/schema restrictions * [HHH-9913] - NPE in org.hibernate.cache.internal.CacheDataDescriptionImpl.decode() * [HHH-9915] - Test IndexedCollectionTest.testEmbeddableWithEntityKey() fail on Oracle * [HHH-9918] - org.hibernate.dialect.Oracle10gDialect does not support identity key generation * [HHH-9923] - Avoid cast to MetadataBuildingOptionsImpl in AnnotationMetadataSourceProcessorImpl#prepare() * [HHH-9927] - Explicit calls to EntityManager.joinTransaction() with no active JTA transaction should throw a TransactionRequiredException * [HHH-9937] - Hibernate#isPropertyInitialized always returns true for new enhancer * [HHH-9945] - Allow Transaction to rollback if marked-for-rollback-only * [HHH-9946] - Do better job cleaning up "stray" transactions in base test * [HHH-9947] - PhysicalNamingStrategy#toPhysicalTableName called rather than #toPhysicalColumnName for some columns * [HHH-9948] - SequenceStyleGenerator uses potentially incorrect name for table/sequence in DML statements * [HHH-9949] - Recognize legacy http://hibernate.sourceforge.net/hibernate-configuration DTD base identifier * [HHH-9953] - Test o.h.test.legacy.ComponentNotNullTest.testCompositeElement fails on Oracle - ORA-00972: identifier is too long * [HHH-9967] - Create index on Postgres with --defaultSchemaName * [HHH-9968] - Test o.h.test.type.AttributeConverterTest.testBasicTimestampUsage fails on Oracle - ORA-00972: identifier is too long * [HHH-9969] - MySQLDialect handling of numeric cast targets is incorrect * [HHH-9971] - Methods of ForwardingSessionBuilder, ForwardingSessionBuilderImplementor and ForwardingSharedSessionBuilder should return themselves not the delegate * [HHH-9972] - Tests in o.h.test.type.EntityGraphUsingFetchGraphTestUsage fail on Oracle - ORA-00972: identifier is too long * [HHH-9976] - JdbcResourceLocalTransactionCoordinatorImpl does not rollback on failure during #beforeCompletionCallback * [HHH-9985] - Enhaced entity changes not peristed after merge ** Improvement * [HHH-1872] - Hibernate should handle hbm.auto = update with views * [HHH-9955] - EnumType mapped via hbm.xml not always resolved properly as far as named/ordinal * [HHH-9966] - Improve schema tooling support for creating catalogs and schemas * [HHH-9980] - Implement mark-for-rollback-only handling for JdbcResourceLocalTransactionCoordinatorImpl ** New Feature * [HHH-9977] - Consider options for passing Session to caching SPI calls ** Task * [HHH-9916] - Update quickstarts and tutorials for 5.0 + convert to asciidoc(tor) * [HHH-9930] - Enable mariadb (mysql) database profile * [HHH-9931] - Enable pgsql database profile * [HHH-9956] - Enable derby database profile * [HHH-9959] - Upgrade Hibernate Validator to 5.2.0.Final * [HHH-9970] - Remove NoIdentityHQLScrollFetchTest and change HQLScrollFetchTest to work with "increment" ID generator * [HHH-9974] - Rename org.hibernate.boot.model.relational.Schema to Namespace * [HHH-9986] - Fix reference manual inconsistencies for 5.0 Changes in 5.0.0.CR2 (July 8, 2015) ------------------------------------------------------------------------------------------------------------------------ https://hibernate.atlassian.net/projects/HHH/versions/20150 ** Sub-task * [HHH-8558] - Lazy loading (basic attributes) * [HHH-8559] - Lazy loading (to-one associations) ** Bug * [HHH-2851] - ParameterTranslationsImpl fails to correctly determine parameter type * [HHH-9166] - Postgres ViolatedConstraintNameExtracter doesn't handle nested Exceptions * [HHH-9581] - hibernate-enhance-maven-plugin error: "Unable to delete class file" * [HHH-9582] - hibernate-enhance-maven-plugin error: "Unable to enhance persistent attribute" * [HHH-9757] - Incorrect image path generated in HTML rendering * [HHH-9800] - Numerous hibernate-infinispan tests continue to fail transiently * [HHH-9837] - Remove reliance during annotation binding on org.hibernate.internal.util.ClassLoaderHelper * [HHH-9838] - Leverage ClassLoaderService during JavassistLazyInitializer#getProxyFactory * [HHH-9844] - org.hibernate.cache.spi.access.AccessType enum names are not valid values for hibernate.cache.default_cache_concurrency_strategy * [HHH-9849] - Duplicate column name for mixed case column name on schema update (mysql,linux) * [HHH-9851] - Limit handling is broken for dialects that don't support variable limit/offset * [HHH-9856] - EntityManager.find() and getReference() throw incorrect exception for non-entity * [HHH-9859] - ResourceLocalTransactionCoordinatorImpl#isJoined bad impl * [HHH-9866] - Wrong join table column names generation with globally_quoted_identifiers * [HHH-9874] - Classloader issue in starting the Infinispan CacheManager within WildFly * [HHH-9885] - The default ClassLoaderService implementation should handle java.lang.LinkageError * [HHH-9887] - Make sure the JPA temp ClassLoader is not used to load Class definitions that are then held on to * [HHH-9892] - Hibernate generator try to regenerate same metamodel after generated entities * [HHH-9893] - proper karaf features file task dependency for artifact publishing * [HHH-9902] - Gradle enhancer plugin skips Embeddable entities * [HHH-9905] - JPA integration property "javax.persistence.validation.factory" not passed along to TypeSafeActivator ** Improvement * [HHH-9518] - Exception and logging messages for collection multi-session access needs to be improved * [HHH-9584] - MavenEnhancePlugin should optionally fail on error * [HHH-9738] - Upgrade master (5.0) to Gradle 2.4 * [HHH-9840] - Allow custom key implementations for 2nd level cache regions * [HHH-9841] - Redesign org.hibernate.property.PropertyAccessorFactory * [HHH-9843] - Use optimized cache key implementation in Infinispan 2LC * [HHH-9855] - Ignore non-entity classes listed as "managed classes" in persistence.xml * [HHH-9857] - Reuse of EntityEntry for bytecode enhanced read-only reference cached entities ** New Feature * [HHH-9848] - Allow disabling auto-quoting of database object names (tables, columns, etc) * [HHH-9899] - Enable custom Metadata(Builder) extensions by integrators ** Task * [HHH-9822] - Switch runtime JPA Class transformation to use new bytecode Enhancer * [HHH-9825] - HCANN AnnotationFactory still using TCCL * [HHH-9826] - Update the release task for uploading release bundles to SourceForge FRS * [HHH-9827] - Truncate master changelog.txt file to just 5.0 related changes * [HHH-9830] - Upgrade to jboss-logging 3.3 Final (rather than Beta) * [HHH-9831] - Upgrade HCANN to 5.0.0 * [HHH-9858] - Make sure release bundles contain hibernate-java8 * [HHH-9860] - Upgrade to non-SNAPSHOT version of geolatte Changes in 5.0.0.CR1 (May 27, 2015) ------------------------------------------------------------------------------------------------------------------------ https://hibernate.atlassian.net/projects/HHH/versions/19851 ** Sub-task * [HHH-8489] - Bi-directional association management via bytecode enhancement ** Bug * [HHH-8854] - Could not extract ParameterizedType representation of AttributeConverter definition * [HHH-9287] - Pooled optimizer identifiers clash with INSERT rows calling sequence directly * [HHH-9629] - l2 cache key constructed wrong for entity with inheritance when fetching lazy property * [HHH-9665] - Allow EntityManagerFactoryImpl to be unwrapped only into public interfaces/classes * [HHH-9737] - Miscellaneous bugs in unit tests when using non-default dialects * [HHH-9745] - ClassCastException in hbm2ddl update and validate * [HHH-9756] - NPE in JtaTransactionCoordinatorImpl#explicitJoin() after previously executed transaction * [HHH-9758] - Broken SQL generated for dynamic batch fetching entities with a composite ID * [HHH-9760] - TransactionImpl itself should not be throwing new TransactionExceptions * [HHH-9765] - Re-introduce ExceptionMapper, ManagedFlushChecker and AfterCompletionAction * [HHH-9768] - Maintain explicit list of ANSI SQL keywords * [HHH-9772] - annotation @ListIndexBase has no runtime retention, so it is not available through AnnotationBinder configuration * [HHH-9773] - Add missing package statements to package-info.java files in hibernate-jpamodelgen * [HHH-9776] - org.hibernate.cache.infinispan.impl.BaseRegion.getElementCountInMemory() is no longer correct * [HHH-9777] - Dereferenced collections are not processed properly * [HHH-9787] - Remove outdated Infinispan configuration elements * [HHH-9788] - SchemaUpdate and quoted identifiers causes tables/columns to not be found based on name search * [HHH-9797] - Inaccurate logged warning about duplicate joins (HHH000072) * [HHH-9798] - Unique constraint of @JoinColumn in @JoinTable not generated * [HHH-9806] - Bytecode-enhancement-based dirty tracking does not work because PersistentAttributeInterceptor is never injected ** Improvement * [HHH-8804] - Ability to use parametrized type as AttributeConverter type parameter * [HHH-8898] - Allow usage of try-with to autoclose Session, SessionFactory and ScrollableResults * [HHH-9695] - Use non-transactional cache for immutable entities * [HHH-9781] - Upgrade Hibernate to support Infinispan 7.2.1.Final configurations * [HHH-9795] - Create delegating base class for SessionFactory(Implementor) implementations * [HHH-9804] - Ehcache integration uses a write lock where a read lock is requested in EhcacheTransactionalDataRegion * [HHH-9820] - Handle JDBC drivers that do not properly report metadata regarding case of identifiers * [HHH-9823] - org.hibernate.cfg.annotations.SimpleValueBinder#fillSimpleValue incorrectly using HCANN classloading directly ** New Feature * [HHH-9761] - Make native APIs typed * [HHH-9762] - Complete deprecation of Settings contract ** Task * [HHH-9697] - Complete documentation of new approach and APIs for SessionFactory building * [HHH-9699] - Re-work the hibernate-osgi integration tests using managed Karaf * [HHH-9782] - Build plugins could pick up JAVA6_HOME as environment variable * [HHH-9783] - TestableLoggerProvider needs to implement a new method after upgrade of JBoss Logger * [HHH-9790] - Remove deprecated methods from Session and SessionFactory * [HHH-9792] - Clean up missed Configuration methods * [HHH-9796] - Allow running hibernate-infinspan tests using Infinispan configuration specified by hibernate.cache.infinispan.cfg * [HHH-9803] - Checkstyle fix ups * [HHH-9809] - Improve Hibernate Gradle plugin * [HHH-9811] - Change EntityPersister#resolveAttributeIndexes to take String[] * [HHH-9813] - Improve Hibernate Enhance Maven Plugin Changes in 5.0.0.Beta2 (April 29, 2015) ------------------------------------------------------------------------------------------------------------------------ https://hibernate.atlassian.net/projects/HHH/versions/19550 ** Bug * [HHH-9250] - BigIntegerSequenceGeneratorTest.testBasics fails on MS SQL Server 2012 * [HHH-9704] - Complete HHH-8805 work on 5.0 * [HHH-9709] - JPA @ForeignKey not consistently applied from annotation binding * [HHH-9713] - Creating an index in the database incorrectly tries to qualify the index with table name for some databases * [HHH-9716] - Previously working schema creation fails on 5.0 * [HHH-9722] - toLowerCase() still causes bugs in Turkish locale * [HHH-9736] - BigIntegerType should use BigIntTypeDescriptor * [HHH-9747] - Import initial reworking of transaction handling (based on JdbcSession work) ** Improvement * [HHH-9550] - Allow a dialect to specify the level of catalog/schema support * [HHH-9726] - Rename MetadataBuilderContributor to MetadataBuilderInitializer and pass it the StandardServiceRegistry * [HHH-9727] - Slight redesign to bootstrapping APIs to allow for OGM bootstrapping * [HHH-9728] - Audit Settings to decide what should become a SessionFactoryServiceRegistry service * [HHH-9746] - Improve hibernate-spatial integration ** New Feature * [HHH-9724] - More complete "temp table" coverage and allow Dialects to influence which strategy is used ** Remove Feature * [HHH-9753] - Remove ClassicAvgFunction, ClassicCountFunction, ClassicSumFunction ** Task * [HHH-6509] - import Hibernate Spatial into Hibernate core as a module * [HHH-9701] - Develop "immutable EntityEntry" impl * [HHH-9706] - Review concurrency of ClassLoaderService and warn against reuse * [HHH-9717] - Build script improvements * [HHH-9732] - Convert SQLFunctionRegistry to use a case-insensitive Map, rather than relying on code outside it using lower-case keys * [HHH-9733] - Add checks for no-arg uses of String#toUpperCase and String#toLowerCase Changes in 5.0.0.Beta1 (March 31, 2015) ------------------------------------------------------------------------------------------------------------------------ https://hibernate.atlassian.net/projects/HHH/versions/18450 ** Sub-task * [HHH-7998] - Add TypeContributions interface * [HHH-9690] - Improve design of Enhancer ** Bug * [HHH-3868] - Merging transient entity with a component property with parent mapping causes NullPointerException * [HHH-5654] - query.setLockMode("alias", LockMode.LockMode.PESSIMISTIC_WRITE); does not Lock in PostgreSqlDialect * [HHH-6005] - Better handling of implicit column naming with @ElementCollection of @Embeddables * [HHH-7375] - TimeZone of Calendar objects should be used in binding to JDBC statements * [HHH-8494] - Misleading log info during batch execution * [HHH-8769] - NPE when using dynamic model mapping * [HHH-8788] - Unnecessary warning logged about follow-on locking with Criteria query and LockMode NONE * [HHH-8805] - [SchemaUpdate] javax.persistence.ForeignKey doesn't respect ConstraintMode.NO_CONSTRAINT * [HHH-8866] - HQL Query with enum and @Convert * [HHH-8879] - Regression: Embeddable with associations as @MapKey * [HHH-8895] - Filter for MappedSuperClass stopped to work from 4.1.6.Final * [HHH-8901] - Create base delegator impls for SessionBuilder and SharedSessionBuilder for use by Search * [HHH-8911] - ClassCastException between CompositeCustomType and ComponentType * [HHH-8994] - QueryException during startup with composite key in ElementCollection map * [HHH-9044] - Create Oracle12cDialect * [HHH-9091] - Collection deleted due to orphan removal fails with constraint violation * [HHH-9141] - Remove deprecated PersistenceProvider from hibernate-entitymanager META-INF/services/javax.persistence.spi.PersistenceProvider * [HHH-9247] - JPA 2.1 Named Entity Graph cannot be configured in ORM XML * [HHH-9300] - DB2Dialect generates invalid order by clause * [HHH-9320] - AttributeConverter result ignored on extraction when ResultSet.wasNull * [HHH-9330] - orphanRemoval=true does not work in bidirectional relationships (without cascading) * [HHH-9333] - TypeMismatchException when using composite-id and natural-id mappings * [HHH-9337] - Region.destroy() attempts to remove a cache listener, but region class is not annotated with @Listener * [HHH-9392] - SQLGrammarException while executing a entity graph with subgraphs * [HHH-9401] - SQL warnings are never logged due to incorrect condition check * [HHH-9419] - Remove after get with optimistic lock fails * [HHH-9444] - Rounding of fractional seconds causes test failures on MySQL 5.6.4+ * [HHH-9448] - Association is not fetched when EntityGraph has explicit fetch and query has implicit join * [HHH-9451] - Extra state is not propagated from temporary entity entries * [HHH-9457] - EntityGraph with order by using Oracle10gDialect * [HHH-9467] - Cannot enable NamingStrategyDelegator implementations using standalone schema tools * [HHH-9498] - Using C3P0 connection pool but not setting hibernate.connection.isolation results in a NumberFormatException * [HHH-9500] - H2: SchemaExport ERROR when using in-memory database - drop constraint issue HHH000389 * [HHH-9523] - EnumeratedTypeTest - select from dual causes test failures on mssql, postgresql, db2 and sybase * [HHH-9528] - InputStream leak from opening resources * [HHH-9549] - Selecting treated root generates invalid HQL * [HHH-9561] - Master version is 4.3.7-SNAPSHOT; should be 5.0.0-SNAPSHOT * [HHH-9568] - EntityManager.flush() does not behave properly with transient one-to-one association and no cascade * [HHH-9597] - Criteria creates invalid Column aliases. * [HHH-9599] - AnnotationException occurs when applying @Nationalized and @Convert annotations to the same field * [HHH-9605] - Query on an enum collection fails * [HHH-9633] - Add tests that explicitly test the "main" NamingStrategy impls * [HHH-9639] - Unwrap in HikariCPConnectionProvider fails to unwrap DataSource * [HHH-9642] - Embedded OneToMany association fetch join does not work in CriteriaQuery * [HHH-9659] - AnnotationMetadataSourceProcessorImpl uses a Logger.debugf method without matching parameters * [HHH-9679] - hibernate-enhance-maven-plugin uses no-longer support syntax in its build script * [HHH-9680] - hibernate-osgi module has gone cra-cra again * [HHH-9689] - Avoid NPE when trying to load non-existent properties resource ** Deprecation * [HHH-9645] - buildSessionFactory() should return a sessionFactory ** Improvement * [HHH-6670] - H2Dialect should use "if exists" when dropping sequences * [HHH-8191] - Update Teradata Dialect for Teradata 14.0 * [HHH-8401] - Support fractional seconds on MySQL 5.7 * [HHH-8697] - AttributeConverter not called when value is null * [HHH-8844] - Add support for Java 8 date and time types (JSR-310) * [HHH-9043] - Allow customization of the modified field flag * [HHH-9324] - Avoid creation of LimitHandler instances for every query * [HHH-9328] - Avoid creation of Cascade objects at all * [HHH-9336] - Avoid creation of TypedValue objects in AbstractPersistentCollection#getOrphans(Collection, Collection, String, SessionImplementor) for some ID types. * [HHH-9479] - Avoid immediate collection capacity increase in ActionQueue constructor * [HHH-9488] - Move scanning from HEM to core * [HHH-9490] - Migrate from dom4j to jaxb for XML processing * [HHH-9492] - Migrate to new bootstrap API (MetadataSources, etc) * [HHH-9497] - Remove call to Ehcache ClassLoaderUtil.getStandardClassLoader() as it has been removed in Ehcache 2.8.3+ * [HHH-9545] - H2Dialect should use "if exists" when dropping constraints * [HHH-9556] - support query hints for SQL Server 2012 * [HHH-9562] - Dialect specific UUID handling * [HHH-9600] - remove outdated info about cache concurrency strategies support * [HHH-9601] - table schema not paired with @OrderColumn name value in example 7.8 * [HHH-9621] - Add HQL query to warning about positional parameter usage * [HHH-9647] - Update jboss logging to 3.2.1.Final * [HHH-9648] - Upgrade to HikariCP v. 2.3.3 (Java 6 compatible edition) * [HHH-9655] - Add logging to help better track down tests that leave SessionFactories open * [HHH-9658] - Simplify the way tests assert on logging statements * [HHH-9698] - Leverage ClassLoaderDelegate stuff added to HCANN as means to avoid its need for TCCL ** New Feature * [HHH-7078] - Split NamingStrategy into ImplicitNamingStrategy/PhysicalNamingStrategy * [HHH-8869] - Create HikariCP connection pool module * [HHH-9042] - Add support in Envers for converted (AttributeConverter) attributes * [HHH-9167] - Support Postgres9.2 JSON data type * [HHH-9265] - Extract EntityEntry behind a factory + interface * [HHH-9524] - Make strategy for interpreting id-generator annotations pluggable * [HHH-9577] - Make UUID generation the default (AUTO) for UUID type ** Patch * [HHH-9495] - @Convert support for collections ** Task * [HHH-9466] - Drop metamodel package from source * [HHH-9471] - OSGi tests failing again after changes done for HHH-9466 * [HHH-9487] - Improve AvailableSettings javadoc for session_factory_name / session_factory_name_is_jndi * [HHH-9508] - Avoid source code syntax which fails in Eclipse * [HHH-9573] - Add EntityManager test case illustrating usage of query cache * [HHH-9632] - Upgrade to Infinispan 7.1.0.Final * [HHH-9654] - Adjust envers for 5.0 APIs + JAXB * [HHH-9668] - Initial documentation of new approach and APIs for SessionFactory building * [HHH-9677] - Upgrade Gradle * [HHH-9678] - Change built-in SqlTypeDescriptor impls to not auto-register themselves with SqlTypeDescriptorRegistry * [HHH-9700] - Make EntityEntryFactory pluggable via EntityPersister