I've been using JPA for some time now and been in projects where we've used both Hibernate Annotations and Toplink Essentials.
AFAIK the project leader chose Toplink because Netbeans had it integrated and seemed to be the easy thing to do.
However when looking for help, most of the literature seemed to assume that you are using Hibernate as 开发者_运维问答the JPA provider, so, the question is, is have you found any advantage, performance or otherwise for not using the de-facto standard for JPA, Hibernate?
have you found any advantage, performance or otherwise for not using the de-facto standard for JPA, Hibernate?
I tend to prefer Hibernate because:
- I think that (the size of the) community matters.
- I'm happy with Hibernate performances, documentation, tooling, support, extensions.
- I still didn't run any benchmark myself and I don't trust the few one you can find on the web (which are either not representative, or biased) so I can't really compare from a performance point of view.
But TopLink Essentials is a serious implementation (it is used in the commercial distribution of GlassFish and TopLink was a great product). It's just that you may not find help as easily as with Hibernate IMHO.
Why not actually do a speed comparison on typical operations that your application requires ? Yes, there are differences. Or maybe you need particular extensions, and just maybe Hibernate doesn't have them in those cases. There is no "de-facto" standard for JPA, contrary to your opinion. Many people use Hibernate using its API, not as JPA. You do know there are many "gotchas" of using a system with proxies, and consequently you have to bear those in mind when designing your model; other implementations don't necessarily have those. There are many other implementations of JPA too.
PS, DataNucleus AccessPlatform is one such implementation. I prefer to leave it to you to do the comparison though since its your project that it needs applying to.
精彩评论