{ by david linsin }

October 30, 2006

Hibernate 3.2

A couple of days ago I read an interesting interview over at artima.com with a lead engineer of the Hibernate project. He talks about the new features and the JPA compliance of Hibernate 3.2 GA. Two points he mentioned sounded quite interesting, since I haven't heard of them, though apparently they are not new features of 3.2:

  • Hibernate's Lucene integration
This work is being led by Emmanuel Bernard. It builds on Hibernate Annotations and the event framework of Hibernate Core. The idea is to delegate maintenance of Lucene indexes that are populated based on domain entity state to Hibernate based on persistence events.

Whenever you update or delete or insert a new entity instance, Hibernate fires events in response to these actions which the Lucene integration listeners pick up on and perform any needed actions on the Lucene indexes. The beauty of the whole integration is the simplicity of the solution: you get all this from just a few annotations on your domain classes and a few extra lines of Hibernate configuration for the listener stack.

  • An Antlr-based query translator
...currently working on a slew of new HQL features, such as ad-hoc join syntax and UNION/MINUS queries; this is all being done on top of the Antlr-based query translator we introduced in 3.0.

I'm facing both of these issues in one of my current projects, where we have to keep a Lucene-Index synchronized with the data in a database. This is a fairly challenging problem, where Hibernate 's implementation might be worth a look at. The Antlr-based query translator is quite interesting cause I have to implement a custom search syntax for both queries against a database and queries against Lucene.

I'll might blog about my investigations on these to issues. Write me if you've got experience with either one of these topics.



  • mail(dlinsin@gmail.com)
  • jabber(dlinsin@gmail.com)
  • skype(dlinsin)