Hibernate Core 4.0.0.CR3 has just been released. The complete list of changes can be found in the JIRA release notes.
This release contains some changes to integration SPIs (for Hibernate OGM, Hibernate Spatial, etc) that we wanted to make sure made their way into 4.0. See HHH-6091 and HHH-6640 in particular. There are bug fixes as well.
Hibernate Core 4.0.0.CR2 has just been released. The complete list of its changes can be found in the JIRA release notes.
- HHH-6586 As Steve said in this post, we will continue new metamodel development after 4.0.0 release, we think the deprecation of Configuration may confuse the community, so in this issue, we removed the deprecation tag from this class, and we will continue to support this API until we get new metamodel ready, at which point this class will become deprecated and scheduled for removal in 5.0.
- HHH-6622 Upgrade to Hibernate Commons Annotations 4.0.0.CR2, now, we have fully moved to jboss logging, no slf4j-api dependency required anymore.
- HHH-6618 We have wrote a new gradle plugin which can be used to run hibernate functional tests on different DBs besides H2, this is useful for community contributors, see hibernate-core/buildSrc/readme.txt for more details.
Progress on the new metamodel ended up being much slower then anticipated, so we decided to move ahead with the 4.0 release and will continue development of it after 4.0. At that point the rest of the work for 4.0 had already been completed which brings us to the first CR release. The complete list of its changes can be found in the JIRA release notes.
Hibernate Core 3.6.7.Final is a maintenance release with just a couple of fixes.
- HHH-1780 caused negation (NOT) in HQL WHERE clauses to be inverted incorrectly when a single NOT was applied to AND-ed or OR-ed constraints, as in
WHERE NOT ( constraint1 OR constraint2 ); NOT was only being applied to the first constraint.
- HHH-6370 fixed some issues and made some improvements to HSQLDialect.
For more details about Hibernate 3.6.7-Final, see the release notes.
The artifacts have all been published to the JBoss Nexus repository under the org.hibernate groupId at http://repository.jboss.org/nexus/content/groups/public-jboss/ (not browsable). To browse this repository, go here.
DOWNLOAD the release bundles from SourceForge.
Hibernate Core 4.0.0.Beta4 has just been released. The complete list of changes can be found in JIRA release notes
Most of the work is still occurring in relation to the new metamodel. A primary milestone in this release is the consolidation of how bindings get built between annotation processing and hbm.xml processing (see HHH-6447 for details). And Gail has started getting the metadata integrated into the Hibernate
engine! So all in all things are really moving along.
The release is available from SourceForge in bundle form as well as from the JBoss Nexus repository (now synchronized to Maven Central!) under the org.hibernate groupId.
Hibernate 3.6.6.Final is mainly a maintenance release with a couple of improvements.
There were a couple of dependencies that were upgraded:
There were several improvements to dialects:
- HHH-2614 caused LOB columns specified without a length to be exported with length 255 when using a Derby database. With this fix, the length is no longer exported for LOB columns, enabling Derby to set the default length to 2M-1 bytes. If a length is specified it will be ignored, so if you want a LOB column with a non-default length, then you will have to write the DDL yourself.
- HHH-6386 and HHH-6420 provided improvements to Sybase and SQL Server support, respectively
For more details about Hibernate 3.6.6-Final, see the release notes.
The release bundles have been uploaded to SourceForge.
Hibernate Core 4.0.0.Beta2 has just been released. Most of the work in this release deals with continuing to tidy up the new metamodel. The complete list of its changes can be found in the JIRA release notes
Hibernate Core 4.0.0.Beta1 has just been released. The complete list of changes can be found in JIRA release notes
As this is a Beta, we expect the API to be pretty much complete. At this point most of the work is going into the newly redesigned metamodel which is the representation into which Hibernate parses user provided metadata (XML and annotations) before building a SessionFactory. As we finish up that work in the coming weeks there may be adjustments to those contracts. However, most users will not leverage those contracts anyway.
As the redesigned metamodel is still being finished up and is currently likely to only work on simple domain models we have decided to delay removal of the org.hibernate.cfg.Configuration class and that method of building a SessionFactory until this work is done. So both approaches are available in parallel for the time being.
Hibernate Core 3.6.5.Final is mainly a maintenance release with a couple of improvements.
Of interest are:
- HHH-2225 caused a NullPointerException when a native SQL query was used to eager fetch a joined component.
- HHH-6219 caused a memory leak when using Infinispan cache.
- HHH-5598 improves support for Sybase; more information about Hibernate/Sybase integration can be found here.
- Several Envers bugfixes and improvements.
For more details about Hibernate 3.6.5-Final, see the release notes.
The release bundles have been uploaded to SourceForge.
I apologize for the day delay. Ran into a small issue with one of my Gradle plugins after upgrading Gradle for the Hibernate build. Now that that is all sorted...
We are pleased to announce the release of Hibernate Core 4.0.0.Alpha3. Consult the change list for all the gory change details. This is scheduled to be the last Alpha release for Hibernate 4, Beta1 being slated for release on June 1st.
4.0.0.Alpha3 was really about continuing to work on the new metamodel code and fleshing out the new API for SessionFactory creation which leverages that metamodel code as well as the ServiceRegistty code introduced in the first Alpha (and cleaned up since). These things will continue to be the focus for Beta1 too as there is still lots of work to be done on the metamodel code and the SessionFactory building is inherently linked with that work. However, I think the API for SessionFactory building is pretty completely at this point. So I wanted to take the opportunity to introduce that API, even though it is not
wired up at this time.
Currently you start off with a ServiceRegistry:
org.hibernate.service.BasicServiceRegistry serviceRegistry = new org.hibernate.service.ServiceRegistryBuilder() ... // configure the services buildServiceRegistry();
Configuration here means either providing services (or service initiators) directly or providing settings that the services will pick up.
Next, we collect up the
metadata sources which are the various sources you want Hibernate to look for metadata describing your domain model and its mapping to the relational database. These sources might be hbm.xml files, annotated classes, etc:
org.hibernate.metamodel.MetadataSources metadataSources = new org.hibernate.metamodel.MetadataSources( serviceRegistry ) .addResource( "some.hbm.xml" ) .addAnnotatedClass( SomeEntity.class ) ...;
An interesting thing to note here is that we now have a natural lifecycle to the information that used to just get dumped into org.hibernate.cfg.Configuration. This previous step only collects the metadata sources, we still need Hibernate to process them:
org.hibernate.metamodel.Metadata metadata = metadataSources.buildMetadata();
And then finally we build the SessionFactory:
SessionFactory sessionFactory = metadata.buildSessionFactory();
You can even chain many of these steps:
BasicServiceRegistry serviceRegistry = new ServiceRegistryBuilder() ... // configure the services buildServiceRegistry(); SessionFactory sessionFactory = new MetadataSources( serviceRegistry ) .addResource( "some.hbm.xml" ) .addAnnotatedClass( SomeEntity.class ) .buildMetadata() .buildSessionFactory();
org.hibernate.cfg.Configuration has been deprecated in this release and org.hibernate.cfg.AnnotationConfiguration has been deprecated for some time now. Both will get removed before 4.0.0 goes Final. We are still planning exactly what the replacement for org.hibernate.ejb.Ejb3Configuration will look like, but it too has been deprecated in the meantime (the recommended way to build an EntityManagerFactory has always been via javax.persistence.Persistence anyway).
We got a lot more aggressive with the package reorganization in this release as well. For those unfamiliar, the general idea is that this is a sort of pre-osgi-ification step, so more will be coming on that front later. The basic gist is that we are splitting packages up based on usages. Stuff deemed part of the API will remain in their same packages, stuff making up the various SPIs will be moved to a 'spi' package, and finally internal (non-public) stuff is moved to an 'internal' package. This work is not yet done, but is moving along.
As always, if you have any comments, the best place is either the hibernate-dev mailing list or the #hibernate-dev IRC channel on freenode. Now is especially the time if you had ideas about any of the planned changes as we move towards 4.0.0.Final or wanted to help in the effort. We have development meetings weekly on the #hibernate-dev IRC channel Mondays at 10am Central time. We also send out
minutes to the dev mailing list afterwards.