当前位置: 首页 > 面试题库 >

Java Persistence API(JPA)实现应使用哪个提供程序。

丌官绍元
2023-03-14
问题内容

我想将Java Persistence API(JPA)用于我的Web应用程序。

有流行的JPA实现,例如 HibernateToplinkEclipseLink 。什么实现是一个很好的选择,为什么?


问题答案:

Java持久性API(API) 的开发,它成为流行的速度非常快。JPA描述了使用Java在应用程序中关系数据的管理。

JPA(Java持久性API)是持久性提供程序要实现的接口。

Hibernate就是这样的JPA实现。当将Hibernate与JPA一起使用时,实际上是在使用Hibernate JPA实现。

JPA通常通过Java类中的注释定义元数据。也可以通过XML或两者结合使用。XMLhtml" target="_blank">配置将覆盖注释。

JPA实现:

  • 休眠 :最先进且使用最广泛的。注意类路径,因为使用了很多库,尤其是在使用JBoss时。支持JPA 2.1。
  • Toplink :仅支持基本的JPA规范。(这是Oracle的JPA实现的免费版本)
  • EclipseLink :基于TopLink,是Oracle和TopLink持久化的预期路径。支持JPA 2.1
  • Apache OpenJPA :最佳文档,但似乎有很多错误。JPA的开源实现。支持JPA 2.0
  • DataNucleus :有据可查的开放源代码(Apache 2许可),也是JDO提供者。支持JPA 2.1
  • ObjectDB :有据可查
  • CMobileCom JPA :适用于Java和Android的轻量级JPA 2.1实现。

其他方法是:

  • 纯JDBC
  • Hibernate的ORM:Hibernate现在也非常支持JPA
  • iBatis:项目移至MyBatis(链接)
  • JDO

Hibernate的动机是我的JPA选择:

  • 成熟的项目:
    • 最先进的
    • 有据可查
  • 有用的Hibernate子项目
    • Hibernate工具:自动生成代码和数据库生成
    • 休眠验证:bean规范功能。与JPA2集成
    • 休眠搜索:对域对象进行强大的全文本搜索
  • 活跃社区
    • 大发展社区
    • 广泛使用

在最终规范发布之后,Hibernate很快成为JPA的开源实现。它具有丰富的功能集并可以快速生成新功能,因为开源开发过程往往比Java社区过程要快。



 类似资料:
  • 我需要一个关于如何使用Google-guice为服务的多个实现编写代码的建议。下面是示例 因为Guice不允许将一个类型绑定到多个实现,因为下面的代码会导致错误 我们可以用下面的命名注释来解决这个问题 但我工作的应用程序是这样的。我们在init()方法中绑定所有模块并创建注入器模块: 但是通过上述过程,我可以将一个实现类绑定到接口(服务类) 你能给我提供一个方法来与供应商合作吗。我想在下面这样做

  • 问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我利用了以下JPA实现: hibernate 顶联 OpenJPA 他们每个人都有自己的优点和缺点。我发现Hibernate是这三个中最先进的,除了它将自己的某

  • 问题内容: JSR 275似乎处于拒绝状态。JScience似乎有一个实现,并且似乎有一个计量单位。 还有其他开源实现吗? 哪个软件包符合jsr-275且易于使用。 问题答案: 由于JSR-275已被拒绝,因此无法使用javax名称空间,并已由名称空间org.unitsofmeasurement代替。该JScience落实已经发布,最新的在写这篇文章的是4.3.1版本在2012年10月。干杯,Je

  • 问题内容: 使OAuth提供程序以Java运行的最快/最简单方法是什么?具体来说,我需要授权第三方应用访问某些Web服务(我正在考虑使用OAuth进行令牌身份验证)。 我一直在寻找在新泽西州的OAuth扩展,但提到这里,它没有提供一个完整的服务供应商。 问题答案: 有一些Java库可用于OAuth。具体来说,我来看看这个。我自己没有使用过,但是有一个运行OAuth服务提供商的示例。 OAuth网站

  • 我试图运行迁移与自定义DbContext。 这会引发迁移异常,因为未实现无参数构造函数: “目标上下文”系统。数据实体DbContext“”不可构造。添加默认构造函数或提供IDbContextFactory的实现。 构造函数需要参数,但我已经有了

  • 问题内容: 我学过: ‘Application Context’的三种常用实现是- −此容器从XML文件加载bean的定义。在这里,您需要向构造函数提供XML bean配置文件的完整路径。 −此容器从XML文件加载bean的定义。在这里,您无需提供XML文件的完整路径,但需要正确设置CLASSPATH,因为此容器将在CLASSPATH中查找bean配置XML文件。 −此容器从Web应用程序中加载带