小编Jay*_*ani的帖子

如何在没有事务的情况下使用 Spring Data JPA?

我正在尝试使用 Spring Data JPA 访问 Informix 数据库。数据库本身不支持事务。我们通过 JDBC 来访问数据库。当您尝试执行任何事务性操作时,Informix 的 JDBC 驱动程序将抛出错误。getAutoCommit 返回 true,设置为 false 会引发错误

遗留代码使用 HibernateTemplate 来访问 Informix。服务方法没有任何事务注释

我正在开发一个访问相同数据库的新项目,我想尝试使用 Spring Data。因为,我想继续使用 ORM 层,所以我尝试连接 Spring Data JPA。

所以,我的初始配置是

<bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  <property name="dataSource" ref="datasource"/>
  <property name="packagesToScan" value="org.company.project.business"/>
  <property name="jpaVendorAdapter">
     <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">

     </bean>
  </property>
  <property name="jpaProperties">
     <props>
        <prop key="hibernate.dialect">org.hibernate.dialect.InformixDialect</prop>
        <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
        <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
        <prop key="hibernate.current_session_context_class">thread</prop>
        <prop key="hibernate.connection.autocommit">false</prop>    
        <prop key="hibernate.jdbc.use_get_generated_keys">true</prop>
        <prop key="hibernate.order_updates">true</prop>
        <prop key="hibernate.generate_statistics">true</prop>
        <prop key="hibernate.connection.release_mode">after_transaction</prop>
     </props>
  </property>
</bean>
<bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
     destroy-method="close" depends-on="c3p0InformixConnectionCustomizer">
  <constructor-arg type="java.lang.String" value="database"/>
  <property name="driverClass" value="com.informix.jdbc.IfxDriver"/>
  <property …
Run Code Online (Sandbox Code Playgroud)

java informix hibernate jpa spring-data-jpa

1
推荐指数
1
解决办法
2755
查看次数

标签 统计

hibernate ×1

informix ×1

java ×1

jpa ×1

spring-data-jpa ×1