I’m currently porting an application from Hibernate to JPA using Hibernate EntityManager. Initially I was thinking that this should be an easy task but it is not. JPA changes the behaviour of Hibernate quite a lot.

For example: Hibernate is not trying to persist any properties that are not mapped, but JPA does! So, generally speaking JPA’s mapping files (orm.xml) tend to be much bigger than hibernate mapping files.

In addition JPA has a lot of issues with relationships and inheritance so that one spends alot of time getting complex object networks to work (or fails at all). See the links below (1, 2, 3, …).

So the task of porting this application is on hold for a while after another issue had hit me. For a project that I have just started I have totally stopped any efforts on doing it with JPA. Instead I have fallen back to Hibernate. Maybe this is not a fall back, it should rather be called a lift-off :)

For now my conclusion is: JPA is just the common least denominator of existing mapping products with Hibernate on top of all of them! I guess like with most of the JavaEE specifications there ist another iteration required until it is really usable (seems that this soup is already boiling)!