A few years back Hibernate was my choice. The past two years I have moved
to OpenJPA. The main reason is that OpenJPA works much better with OSGi. I
did try EclipseLink as well but had OSGi problems. This was a while back
and has probably been improved by now.

Another reason why I prefer OpenJPA to Hibernate is that the Apache
community is so much better - much more open. I'm sure this is a matter of
taste but I would not go for Hibernate.

That said, OpenJPA also has some classloading issues under OSGi. In normal
situations it works though. A final compelling reason to use OpenJPA is
that it is much more common choice when using Apache Karaf (I think). It's
normally easier to use different Apache projects together since someone
else has always done it before.

What I don't like is the way JPA uses the persistence.xml. I tend to go
with the approach Christian recommended - to put the datasource in a
separate bundle. It can then easily be switched. In practice, though, it's
hard to actually change database type (not just url) without having to
affect the application.

First, the JPA implementation is configured in persistence.xml. E g that's
where you specify database dialect for OpenJPA. Ideally this would be
separated from the persistence.xml and possible to configure (e g with
OSGi's config admin).

Second, at least when using JPA annotations (which I do), your source code
becomes tailored for a certain database type. I often startup with a simple
Derby database for testing and then move  to SQLServer for production. In
that process I often have to change some annotations to make it work in
SQLServer.

Overall I'm quite content with the OpenJPA+Aries+Karaf combo though. I just
wish that Aries could get their release process straightened out soon.

/Bengt


2012/4/19 Borut Bolcina <[email protected]>

> On 19. apr. 2012, at 16:11, Christian Schneider <[email protected]>
> wrote:
>
> > I guess the suggested way is to not run hibernate :-) For me the fact
> that they do not create bundles says that jboss does not care about OSGi in
> hibernate. As they now have an OSGi server with JBoss 7 that may change
> soon though.
>
> I just looked at JBoss website and their support is not even in dipers.
> See https://issues.jboss.org/browse/JBOSGI-260.
>
> > I had some good experience with apache openjpa together with apache
> aries jpa. Together they solve the classloading problem where the jpa
> provider can not see the user classes. I have not built bigger applications
> with it though.
>
> I will try with OpenJPA, but would really like to hear other people's
> hibernate stories!
>
> >
> > There is also Eclipselink. With their affiliation to Eclipse they will
> surely have an eye on OSGi compatibility. The problem there was that they
> did not put their jas into the maven central repo.
> >
> > So all in all I am not sure what to recommend. Perhaps others already
> have experience with some jpa solution in bigger projects?
>
> Please share some stories to make my decision easier.
>
> Borut
>
> >
> > Christian
> >
> > Am 19.04.2012 15:56, schrieb Borut Bolčina:
> >> Thanks Christian,
> >>
> >> I understand now what you were suggesting. The database type (vendor)
> will be the same in all environments (mysql), but with different addresses,
> engine types, usernames and passwords, which brings another topic up -
> configuration (I will probably ask this in days to come).
> >>
> >> I will be separating datasources, it is just the case that I want a
> working solution and then smooth it out.
> >>
> >> For a begginer it is very hard to get a hibernate mysql combo to work
> (mine still does not). There are examples for persistence, but I had to
> read a lot until I found that Hibernate does not even has bundles,
> therefore tricks has to be performed.
> >>
> >> Is there "an official Karaf Hibernate Feature"? If not, what is the
> suggested way to run Hibernate in Karaf? I am planning to use Hibernate
> Search, Solr and Lucene by using Camel components, so I have lots of ground
> to cover.
> >>
> >> Cheers,
> >> borut
> >>
> >
> > --
> > Christian Schneider
> > http://www.liquid-reality.de
> >
> > Open Source Architect
> > Talend Application Integration Division http://www.talend.com
> >
>

Reply via email to