同时使用Hibernate和Spring数据jpa?

明石

是否可以使用Spring Data JPA(由Hibernate作为JPA提供者支持)并同时直接使用Hibernate?

问题是,当我使用JpaTransactionManager时,无法使用检索当前会话org.hibernate.HibernateException: No Session found for current thread当我切换到HibernateTransaction Manager时,JPA存储库无法提交更改。

这是我的Spring上下文的一部分(在该上下文中,我无法使用直接的Hibernate调用):

<jee:jndi-lookup id="dataSource" jndi-name="jdbc/IPGCONF"/>

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"
      p:dataSource-ref="dataSource">
    <property name="configLocation" value="classpath:hibernate.cfg.xml"/>
</bean>

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="entityManagerFactory"/>
    <property name="dataSource" ref="dataSource"/>
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/>
    </property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory"/>
    <property name="dataSource" ref="dataSource"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>

<jpa:repositories base-package="com.satgate"/>

休眠存储库示例:

public Collection<Layer> listCurrent(Carrier carrier) {
    Criteria query = sessionFactory.getCurrentSession()
                    .createCriteria(Layer.class)
                    .add(Restrictions.eq("carrier", carrier));
    query.createCriteria("bitrate")
            .addOrder(Order.desc("bitrate"))
            .add(Restrictions.eq("symbolrate", carrier.getSymbolrate()));
    return query.list();
}

Spring数据存储库定义示例:

public interface BitrateRepository extends PagingAndSortingRepository<Bitrate, Long> { }

软件版本:

<org.springframework.version>4.0.0.RELEASE</org.springframework.version>
<org.springframework.data.version>1.4.3.RELEASE</org.springframework.data.version>
<hibernate.version>4.3.0.Final</hibernate.version>

因此,问题是-Spring JPA存储库和直接的Hibernate调用是否可以在同一事务(由@Transactional注释指定)中使用,并且如何实现?

尼尔多

与其创建SessionFactory,不如使用EntityManager.unwrap(Session.class)Hibernate Session并从Session对象检索会话工厂。

您也可以使用EntityManagerFactory.unwrap(SessionFactory.class)直接获取Hibernate SessionFactory。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用JPA和Hibernate的Spring Security

来自分类Dev

如何在Spring MVC中使用Hibernate和Spring JPA更新数据

来自分类Dev

如何在JPA和Hibernate中同时使用主键和外键引用?

来自分类Dev

在JPA / hibernate和spring中使用joda time

来自分类Dev

使用 Hibernate Sessions 功能和 Spring Data JPA

来自分类Dev

使用spring数据jpa和rest时,防止hibernate在启动时生成所有查询计划

来自分类Dev

使用@Query和@Modifying的Spring数据JPA PSQLException

来自分类Dev

Spring和hibernate集成无法打开JPA

来自分类Dev

当使用spring-boot和spring-data-jpa加载时,Hibernate无法加载JPA 2.1 Converter

来自分类Dev

Strongloop使用(或)和(和)同时查询数据

来自分类Dev

如何使用 Spring Boot 配置 JPA + HIBERNATE

来自分类Dev

一个不同的对象与使用Spring数据JPA与Hibernate相同的标识符

来自分类Dev

如何使用Hibernate @DynamicUpdate弹簧数据的JPA?

来自分类Dev

如何使用Hibernate JPA和Spring Framework启用加载时间/运行时编织

来自分类Dev

如何使用现代的Spring Boot + Data JPA和Hibernate设置生成ddl创建脚本?

来自分类Dev

使用JPA + Spring时的Hibernate 4和有关延迟加载的改进

来自分类Dev

使用Hibernate和Spring Data JPA进行多租户,架构方法如何工作

来自分类Dev

如何使用JPA和Hibernate修复StaleObjectStateException

来自分类Dev

使用Hibernate JPA和Postgres玩2.2

来自分类Dev

使用Hibernate JPA和Postgres玩2.2

来自分类Dev

使用Hibernate和Spring更新

来自分类Dev

spring.jpa.properties.hibernate和spring.jpa.hibernate之间的区别

来自分类Dev

使用 Hibernate 作为 JPA 提供程序的 Spring DATA JPA

来自分类Dev

Spring数据JPA @查询和可分页

来自分类Dev

无法使用spring-mvc和hibernate从数据库中获取数据

来自分类Dev

使用Spring MVC和Hibernate Rest服务从数据库保存和检索图像

来自分类Dev

使用Spring MVC和Hibernate Rest服务从数据库保存和检索图像

来自分类Dev

Spring JPA Hibernate处理大型数据库

来自分类Dev

Spring Boot JPA Hibernate 多数据源属性设置

Related 相关文章

  1. 1

    使用JPA和Hibernate的Spring Security

  2. 2

    如何在Spring MVC中使用Hibernate和Spring JPA更新数据

  3. 3

    如何在JPA和Hibernate中同时使用主键和外键引用?

  4. 4

    在JPA / hibernate和spring中使用joda time

  5. 5

    使用 Hibernate Sessions 功能和 Spring Data JPA

  6. 6

    使用spring数据jpa和rest时,防止hibernate在启动时生成所有查询计划

  7. 7

    使用@Query和@Modifying的Spring数据JPA PSQLException

  8. 8

    Spring和hibernate集成无法打开JPA

  9. 9

    当使用spring-boot和spring-data-jpa加载时,Hibernate无法加载JPA 2.1 Converter

  10. 10

    Strongloop使用(或)和(和)同时查询数据

  11. 11

    如何使用 Spring Boot 配置 JPA + HIBERNATE

  12. 12

    一个不同的对象与使用Spring数据JPA与Hibernate相同的标识符

  13. 13

    如何使用Hibernate @DynamicUpdate弹簧数据的JPA?

  14. 14

    如何使用Hibernate JPA和Spring Framework启用加载时间/运行时编织

  15. 15

    如何使用现代的Spring Boot + Data JPA和Hibernate设置生成ddl创建脚本?

  16. 16

    使用JPA + Spring时的Hibernate 4和有关延迟加载的改进

  17. 17

    使用Hibernate和Spring Data JPA进行多租户,架构方法如何工作

  18. 18

    如何使用JPA和Hibernate修复StaleObjectStateException

  19. 19

    使用Hibernate JPA和Postgres玩2.2

  20. 20

    使用Hibernate JPA和Postgres玩2.2

  21. 21

    使用Hibernate和Spring更新

  22. 22

    spring.jpa.properties.hibernate和spring.jpa.hibernate之间的区别

  23. 23

    使用 Hibernate 作为 JPA 提供程序的 Spring DATA JPA

  24. 24

    Spring数据JPA @查询和可分页

  25. 25

    无法使用spring-mvc和hibernate从数据库中获取数据

  26. 26

    使用Spring MVC和Hibernate Rest服务从数据库保存和检索图像

  27. 27

    使用Spring MVC和Hibernate Rest服务从数据库保存和检索图像

  28. 28

    Spring JPA Hibernate处理大型数据库

  29. 29

    Spring Boot JPA Hibernate 多数据源属性设置

热门标签

归档