我想知道Apache Open JPA和Spring JPA之间的主要区别是什么。Spring已经有了一个处理各种Java持久性的成熟JPA,但在我的公司中使用Apache Open JPA的项目仍然很少。我们可以将Apache Open JPA与Spring集成吗?我也想知道Open JPA的主要优点是什么。
例如,ElasticPath使用Spring,但对于JPA,他们使用Apache Open JPA
发布于 2021-05-18 13:51:24
第一:没有Spring JPA。
还有spring-orm,它是Spring Framework发布的众多构件之一。它包含处理JPA和它的主要实现(Hibernate和EclipsLink)的类,以便将它们集成到框架的其余部分。大多数Spring用户很少直接处理它。
您可能会想到Spring Data JPA,它提供了用JPA实现的存储库,而JPA又提供了许多声明查询的方法:从方法名称派生查询、基于方法名称的命名查询、带注释的查询、按示例查询、规范...它是Spring Data项目的一部分,该项目通过许多不同的持久化技术(JPA、MongoDb、Couchbase、Elasticsearch、Jdbc、Redis、Ldap…)提供类似的功能。Spring Data JPA使用spring-orm
既然它被提到了几次,现在是时候解释一下JPA了:JPA代表Java Persistence API,是一种可以由多个供应商实现的API。Hibernate是最流行的实现,EclipseLink是参考实现,Apache Open JPA是另一个。
Spring Data JPA (和spring-orm) (主要)基于JPA,因此您应该能够将Apache Open JPA与它一起使用。但是Open JPA的开发在最近几年非常缓慢,以至于Spring Data团队从它测试的JPA实现中删除了OpenJPA。
要了解开发速度,您可以查看过去三年(2019-2021)的版本:
至于Apache Open JPA的好处,我认为这是一个观点问题,因此离开了话题。但是,由于您公司中的人似乎都在使用它,我建议您询问他们为什么选择Open JPA而不是其他实现。
https://stackoverflow.com/questions/67575085
复制相似问题