【发布时间】:2010-11-30 09:08:52
【问题描述】:
Spring 3.0推荐使用hibernate或者JPA,Spring 3.0使用它们的优缺点是什么?
注意:我们还假设将它与 Spring Data Access 一起使用。
【问题讨论】:
Spring 3.0推荐使用hibernate或者JPA,Spring 3.0使用它们的优缺点是什么?
注意:我们还假设将它与 Spring Data Access 一起使用。
【问题讨论】:
我会说,Hibernate 提供的 JPA 实现。为什么?因为
实际上,我也不介意使用 Hibernate 独有的功能。我认为坚持使用 Hibernate 没有任何问题,只是因为它不是标准。顺便说一句,是什么让你认为 Spring 是标准的。它不是,你可以接受它,因为它有效。 Hibernate 也可以这样说。如果您不知道自己在做什么,Hibernate 有时会变得多毛。
【讨论】:
我的首选是带有 EclipseLink 的 JPA。原因:
Bozho:我发现了一些,不幸的是它并不那么明显,因为它只发生在一些极端情况下。我能想到的一些:
【讨论】:
准确地说,你应该使用Java Persistence API,然后你可以使用Hibernate作为实现。
没有实现的 JPA 一文不值。
JPA 是一个标准,所以如果你只使用它的 API,你可以用一些其他的 JPA 实现来替代 Hibernate。如果您使用 Hibernate 的某些特定 API,因为您需要普通 JPA 未提供的功能,您将遇到供应商锁定场景,因此您必须小心这一点。
【讨论】:
这取决于我们的应用程序。
如果您不确定永远不需要更改持久性提供程序,强烈建议使用 JPA (2.0)
如果您确定永远不会更改持久性提供程序,那么我建议您也使用 JPA (2.0)。但是(仅)在这种情况下,如果您遇到标准 JPA 无法解决的问题,您可以使用您选择的 JPA-Provider 的专有功能。 -- 但是要明智地使用它,如果您选择这种方式一次,就很难回头!
当然,JPA 只是一个 API - 所以您需要实现它。 -- 我使用 Hibernate 作为 JPA 提供程序,但主要是因为我一直处于第二种情况(永远不会改变它),并且我需要像 Hibernate-Search 和 Envers 这样的附加功能。
【讨论】: