当前位置: 首页 > 知识库问答 >
问题:

使用Hibernate会话功能和Spring数据JPA

东方乐
2023-03-14

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

>

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

使用SpringDataJParepository查询方法和使用HibernateHQL之间有什么性能差异吗?

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

共有1个答案

越风史
2023-03-14

我知道Spring数据JPA使用Hibernate

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

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

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

Hibernate二级缓存

如果我使用Spring数据JPA,那么是Hibernate会话吗?

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

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

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

使用SpringDataJParepository查询方法和使用HibernateHQL之间有什么性能差异吗?

没有。

 类似资料:
  • 我似乎无法让我的Spring JPA配置正常工作。我有一个Spring REST服务。如果我将所有实体设置为FetchType.EAGER,一切都按预期工作。但是我不想这样做,原因很明显。 当我将实体设置为FetchType时。懒惰,我得到以下错误: org.hibernate.LazyInitializationException:未能懒惰地初始化角色集合:com.service.entitie

  • 问题内容: 是否可以使用Spring Data JPA(由Hibernate作为JPA提供者支持)并同时直接使用Hibernate? 问题是,当我使用JpaTransactionManager时,无法使用检索当前会话。当我切换到HibernateTransaction Manager时,JPA存储库无法提交更改。 这是我的Spring上下文的一部分(在该上下文中,我无法使用直接的Hibernate

  • 我一直在hibernate中使用Spring数据,我想知道避免代码浪费的最佳类组织是什么。这是我的实际结构: 然后我使用这个接口 因此我实现了它 公共类DatabaseServicesImpl实现DatabaseServices{ }但我得到了这个例外

  • 问题内容: 我已经打了一个拦截器将修复到现有project.the主要问题是,我一定会喜欢使用,并在照顾使用Hibernate实现JPA与会议现场(INSERT和UPDATE)。 原因? :需要进行此更改,因为有必要使用,而且我知道(因为我之前已经遇到过),liquibase使用默认的current_timestamp将时间戳转换为datetime,对于MySQL数据库来说太糟糕了。 所以我需要一

  • 我有一个Spring Framework4应用程序,它使用Hibernate4.3.8作为JPA提供程序。我想使用Hibernate过滤器,因此我需要启用它们。我想在应用程序中全局地做到这一点,我试图用Spring AOP做到这一点。这个想法是,我可以编写一个方面,在每次创建/获取会话时启用过滤器,就像这个问题和这个问题一样。 我已经将和依赖项添加到我的项目中(使用Maven)。我添加了以下方面。

  • 是否可以使用Spring数据JPA(以Hibernate作为JPA提供程序为后盾),同时直接使用Hibernate? 问题是,当我使用JpaTransactionManager时,我无法使用检索当前会话。当我切换到HibernateTransaction管理器时,JPA存储库无法提交更改。 下面是Spring上下文的部分(对于该上下文,我无法使用直接的Hibernate调用): hibernate