6. How do you see alternatives to relational
like XML and OO databases, or Prevayler?
We don ' t see them; -)
Truly, the relational data model is a wonderful
and it would be an absolute disaster to replace it with
flawed persistence technologies like XMLDBs or OODBMS.
Fortunately, that simply won ' t happen, since there is
simply no industry interest or momentum behind either.
Technologies like OODBMS sacrifice sound, application
technology agnostic data management for sort-term
convenience (convenience for one single application, written
using one particular programming language). Relational
technology essentially completely replaced network or
hierarchical database technology, and there were excellent
reasons why that happened. We should most certainly not be
reviving either of those discredited approaches by slapping
on the latest buzzwords (OO, XML, etc) as window dressing.
7. Are there any changes you would like to see in
API to make Hibernate better and faster?
It would be great to be able to batch together
statements using the JDBC batch update API (at present, you
can only batch multiple parameter sets for the same statement).
However, rather than seeing many new features in JDBC, I
would be incredibly happy if vendors would simply provide
complete, reliable implementations of the features that are
already there in JDBC 3. It ' s actually quite
how broken the JDBC drivers of certain big-name RDBMS
vendors are. They don ' t seem to care.
9. Do you foresee the upcoming release of EJB3 reducing
the need for Hibernate? Are there any benefits of using
both, like in a BMP environment?
EJB 3.0 is a specification. Hibernate will be an
implementation of that specification. So you can use both at
the same time; -) Alternatively, we intend that some people,
who don ' t care about standards as much, will continue to
use Hibernate-specific APIs, especially for functionality
that is not yet standardized by JSR-220.
10. Could you tell us about what ' s new in Hibernate 3, and
the benefits these changes will bring to users?
The biggest, most innovative new thing is the support for
parameterized " filters ". This feature let ' s you see an
object graph that is just a subset of the total data in the
database. This is incredibly useful when dealing with
temporal, versioned, regional, or permissioned data. In
fact, I expect that most business domains have usecases for
this feature and that it will soon be considered an
indispensable feature of Hibernate.
We have done a huge amount of work on adding greater mapping
flexibility, to support more complex (or even broken)
relational models. This takes the form of a number of small
new features, that are really most significant when taken
together. Hibernate is now able to handle just about any
crazy thing you are likely to find in a legacy database.
In addition, it is now possible to override any SQL
statement that Hibernate generates with your own
hand-written SQL. This gives your DBA the freedom to
hand-tune the SQL when necessary.
Some further major changes in Hibernate3 were designed to
align us more closely with JSR-220.
Finally, we put a huge amount of thought into what small
changes we could make that would make Hibernate easier to
use for beginners. Hopefully that will reduce the incidence
of certain FAQs in the Hibernate forum!
11. How about Metadata in Java 5.0? Do you have plans to
support it? It is a real alternative to hbm.xml?
Absolutely! Emmanuel Bernard is working on implementing the
EJB 3.0 ORM metadata for Hibernate, and adding
We ' ve seen how many people like to use XDoclet annotations
to express their Hibernate mappings, and so I ' m quite
certain that even more people will feel comfortable using
In fact, I fully expect that this will be the most common
way to use ORM in the future.