我在一个相当大的J2EE项目上使用EJB 3,默认情况下,Netbeans将实体bean的持久提供程序设置为TopLink.可以选择将提供程序更改为以下之一,甚至可以添加新的持久性库:
过冬
KODO
OpenJPA的
您更喜欢使用哪种持久性提供程序?使用其他提供商有什么好处?
虽然TopLink似乎很好,但我找不到很多关于如何控制缓存等的好文档.任何帮助都会非常感激.
我只考虑使用两个JPA提供商:
如果你想坚持使用标准JPA,我会使用EclipseLink.Toplink Essentials是JPA 1.0的参考实现,而EclipseLink基本上继承了TopLink Essentials代码,并将成为JPA 2.0的参考实现(并在发布时与Glassfish V3捆绑在一起;预计将于2009年5月围绕JavaOne).TopLink Essentials是Oracle商业化TopLink产品的一个瘫痪版本,但EclipseLink基本上具有TopLink的所有功能.
另一个选择显然是Hibernate.它广泛使用和成熟,但没有我所见过的问题.例如,最后我看起来Hibernate与具有多个一对多渴望关系的实体存在问题.我不知道Hibernate是否具有与EclipseLink的批处理查询提示相同的功能,但它是一个非常有用的功能来处理这类问题.
Hibernate当然也支持标准的JPA.Hibernate的最大优势在于,如果您对其工作原理有疑问,谷歌搜索可能会找到答案.
老实说,我不会考虑除上述两个提供商之外的任何其他内容.