版本3.4.0 GA中的Hibernate中包含了JPA支持。但在此之前,hibernate本机库用于对象持久化。我还在不使用JPA API的项目中使用了hibernate。我有一个问题,即我们使用JPA的真实生活场景是什么,而不是hibernate本机API。在hibernate中使用JPA也是强制性的吗?
答案 0 :(得分:1)
JPA是标准,Hibernate不是。通过坚持标准,您可以使用满足它的任何供应商,而不仅仅是Hibernate(例如EclipseLink,OpenJPA等)
如果您使用标准,那么您可以做的一件事就是从一个标准开始 提供者到另一个,并期望事情应该在您的代码中工作相同。例如,如果您当前的提供商存在错误,或者已停止存在,则会在没有支持的情况下使您无法发展或向API添加新功能。
遵循该标准还可以保证您的API能够及时了解随着时间的推移而添加到规范中的最新功能。
组织或项目中甚至可能存在政治原因:承诺仅使用标准技术和API。
标准的发展基于多家供应商提出的愿景和经验。因此,Hibernate团队确实会影响应该在规范中添加哪些新功能,但其他供应商也是如此。因此,您可以期望标准反映社区的集体经验和观点,而不仅仅是单个供应商的观点。
话虽如此,事实是Hibernate本身提供了比JPA和Hibernate所要求的功能更加丰富的功能,并以更快的速度发展。此外,它看起来非常坚固的技术。因此,这些可能是直接使用Hibernate充分利用其技术并充分发挥其潜力的充分理由。