【问题标题】:Can i implement my own JPA?我可以实现自己的 JPA 吗?
【发布时间】:2014-01-19 23:42:20
【问题描述】:

我是 JPA 的新手,我知道 JPA 是 Hibernate 和 Eclipse 链接正在实现的接口。 我可以自己实施吗?还是使用没有 Hibernate 或 Eclipse 链接的 JPA?

我看到的所有教程和示例都涉及其中一种实现,但至于这个答案:What is a JPA implementation?

如果您希望您的应用程序可移植,请仅使用 JPA。

我怎样才能只使用 JPA ?有人知道这样的教程来编写我自己的 PersistenceProvider(我认为这就是我需要做的......)

谢谢。

【问题讨论】:

  • 我想你误会了。您应该只在代码中使用 JPA。即你的代码应该独立于 Hibernate 和 EclipseLink。然后,您可以在运行时将您选择的实现“插入”到应用程序中。
  • 我认为编写自己的 JPA 实现并不容易......
  • 我猜是这样,但我该怎么做呢?我在 JPA 上看到的所有文档都与 Hibernate 和 EclipseLink 有关。实施 PersistenceProvide 对我有帮助吗?如果不是,会怎样?
  • 一想到必须(再次)解决跟踪对托管实体的更改的问题,我就感到不寒而栗。请:使用现有的 ORM 包。如果您不想相信我的话,请查看 OpenJPA 的源代码有多大,然后问自己一个问题:我真的相信我是如此出色,以至于我可以用更少的代码做到这一点吗?
  • @user2515512 对不起,你错了……

标签: java eclipse jpa


【解决方案1】:

您不应构建自己的 JPA 实现,而应使用 JPA API 并依赖 Hibernate 或 EclipseLink 等实现。只要您在 javax.persistence 命名空间(或包,如果您愿意)中使用类/接口,您将严格使用 JPA。

【讨论】:

    【解决方案2】:

    实施 JPA 的唯一原因是您是 Hibernate 或 iBatis 等企业级 ORM 的提供者-制造商。

    JPA 是现有 ORM 产品的标准包装器,您可以选择将其用作 ORM 的包装器。它不能(据我所知)从 ORM 中使用。

    如果您决定使用 ORM 进行数据库访问。您必须考虑每个选项:独立的 JDBC 是否适合您的工作?对象抽象层会给您的应用程序带来什么吗?是否有任何您必须考虑的遗留条件(例如,PL/SQL 中的大量代码对您隐藏表)会使您放弃 ORM?

    【讨论】:

      猜你喜欢
      • 2020-07-27
      • 2015-05-19
      • 2017-09-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多