【问题标题】:Using Hibernate Sessions features along with Spring Data JPA将 Hibernate Sessions 功能与 Spring Data JPA 一起使用
【发布时间】:2019-03-07 17:35:20
【问题描述】:

我知道 Spring Data JPA 使用 Hibernate,但是,我有一些问题需要澄清。

  • 如果我使用 Spring Data JPA,我能否使用其他 Hibernate 功能,例如 C3P0、Hibernate 二级缓存或 Hibernate 会话?

  • 与使用休眠会话和 HQL 相比,使用 @Query 编写自定义查询有哪些优势?

  • 使用 Spring Data JpaRepository 查询方法和使用 Hibernate HQL 有性能差异吗?

我在这里看到了其他类似的问题,他们没有回答这些问题。

【问题讨论】:

    标签: java spring hibernate jpa spring-data-jpa


    【解决方案1】:

    我知道 Spring Data JPA 使用 Hibernate

    没有。它使用 JPA。尽管 Hibernate 是 Spring Boot 的默认 JPA 实现,也是最流行的 JPA 实现,但任何 JPA 引擎都可以使用。

    我能否使用其他 Hibernate 功能,例如 C3P0

    C3P0 与 Hibernate 无关。这是一个连接池。您可以在 Spring 和 Hibernate 中使用任何您想要的连接池。 Spring Boot 默认使用 HikariCP,我会坚持使用(这是一个非常好的池)。

    休眠二级缓存

    是的。

    如果我使用 Spring Data JPA,还是 Hibernate 会话?

    确实没有充分的理由使用旧的专有 Hibernate Session API,而不是使用标准的 JPA API。如果你真的需要,我不明白你为什么不能使用它,但我不会(而且从来没有必要)。

    与使用休眠会话和 HQL 相比,使用 @Query 编写自定义查询有哪些优势?

    Query 采用 HQL(准确地说是 JPQL)查询。如果使用 Query,则使用 HQL。优点是您只需要声明查询。参数的绑定、查询的执行、分页等都是由Spring为你完成的。但如果需要,您可以使用自定义存储库实现并使用本机 JPA API。

    使用 Spring Data JpaRepository 查询方法和使用 Hibernate HQL 有性能差异吗?

    没有。

    【讨论】:

      猜你喜欢
      • 2013-03-05
      • 2014-03-10
      • 2017-07-17
      • 2014-10-21
      • 1970-01-01
      • 2017-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多