【问题标题】:JPA 1 is not good enoughJPA 1 不够好
【发布时间】:2010-09-11 09:02:31
【问题描述】:

在过去 4 个月内从事过一个中等规模的项目 - 我们 正在使用 JPA 和 Spring - 我很确定 JPA 不是 强大的项目需要超过 CRUD screen...查询界面很差,Hibernate没有 一直尊重 JPA 规范,很多时候我需要使用 休眠类、注释和配置。 大家觉得JPA怎么样?还不够好吗?

【问题讨论】:

  • Hibernate 有自己的注解,它们超出了 JPA 提供的范围。
  • 标题应从“JPA”更改为“JPA 1”

标签: java hibernate jpa


【解决方案1】:

嗯,我认为大多数时候 JPA “足够好”,但我非常想念 Criteria API(仅由 Hibernate 提供)

【讨论】:

  • 人们需要意识到这个对话有多古老。与此同时,带有标准 API 的 JPA 已经问世。
【解决方案2】:

如果不详细了解您的具体情况,我无法提供具体指导。似乎您正在使用 Hibernate 的 JPA 实现。如果您不喜欢 Hibernate 的某些内容,您可以尝试其他 JPA 实现。就查询界面而言,如果 JPA 的查询没有按照您的意愿执行,您始终能够获得一个普通的旧 Connection 并使用它。该框架的天才之处在于——至少——您不必再编写所有的 CRUD 代码。我永远不会声称 JPA 是完美的,但它比一直手写 SQL 来做琐碎的事情要好。

【讨论】:

    【解决方案3】:

    当然,任何 ORM 都比用于 CRUD 操作的手写 SQL 更好...问题是:我认为没有理由使用 JPA 代替纯 Hibernate,因为我经常混合使用这两种方法。如果我没有得到隐藏的提供者,为什么还要使用 JPA?

    【讨论】:

      【解决方案4】:

      使用 JPA 与 Hibernate Annotations 的好处之一是持久类的自动配置和发现。此外,这取决于您需要在多少时间内停止使用 JPA API,如果您只使用 10% 的时间,与使用 hibernate 100 相比,它仍然会使切换提供程序容易得多% 的查询。

      【讨论】:

        【解决方案5】:

        Hibernate 已经走了很长时间。这就是为什么它具有许多 JPA 中尚不可用的功能。但随着时间的推移,JPA 会迎头赶上。在此之前,在必要时使用 JPA 和 Hibernate 特定设置。如果以后需要切换,会容易很多。

        【讨论】:

          【解决方案6】:

          我的建议是简单地使用 Hibernate。 Hibernate 与 JPA 注释 + Hibernate 注释相结合非常强大。您甚至可以配置一个 EntityManagerFactory 来自动发现类路径上的实体,然后调用 getSessionFactory() 来利用应用程序中的本机 Hibernate API。如果您使用 Spring,则使用 LocalContainerEntityManagerFactoryBean 和 HibernateJpaVendorAdapter 很容易做到这一点。

          【讨论】:

            【解决方案7】:

            我们通过我们的内部包装框架结合了 JPA 2.0、Hibernate Core、Hibernate Search 和 Hibernate Validator。它完成了我们投入的所有工作:)

            将它与 Maven 结合起来,我们也为我们构建了一个数据库!将 DBUnit 添加到组合中,您就拥有了所需的一切。

            通过 Lucene 进行快速搜索,但使用 Hibernate Criteria/HQL 查询非常酷。 GWT 建议框背后的所有这些功能都很棒。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2012-01-20
              • 2012-08-30
              • 2019-05-10
              • 2012-03-31
              • 2012-02-09
              • 2015-10-30
              • 2019-02-10
              相关资源
              最近更新 更多