hibernate saveOrUpdate()方法执行数据库操作不成功

saveOrUpdate()方法执行数据库操作不成功:这个问题是你的hibernate.xml文件中的事物配置不正确。导致更新的数据是瞬时状态,没有与Session关联。

具体的配置如下:

  

<!-- 配置事务管理器 --><bean id="transactionManager"      class="org.springframework.orm.hibernate4.HibernateTransactionManager">    <property name="sessionFactory" ref="sessionFactory"></property>    <property name="globalRollbackOnParticipationFailure" value="false" /></bean><!-- 配置事务增强处理Bean,指定事务管理器 --><tx:advice id="transactionAdvice" transaction-manager="transactionManager">    <!-- 配置详细事务处理语义 -->    <tx:attributes>        <tx:method name="add*" propagation="REQUIRED" />        <tx:method name="update*" propagation="REQUIRED" />        <tx:method name="delete*" propagation="REQUIRED" />        <tx:method name="save*" propagation="REQUIRED" />

<tx:method name="get*" propagation="SUPPORTS" read-only="true" />        <tx:method name="find*" propagation="SUPPORTS" read-only="true" />        <tx:method name="select*" propagation="SUPPORTS" read-only="true" />        <tx:method name="load*" propagation="SUPPORTS" read-only="true" />        <!-- 其他采用默认事务方式 -->        <tx:method name="*"/>    </tx:attributes></tx:advice>

<!-- Spring aop事务管理 --><aop:config>    <!-- 配置切入点 -->    <aop:pointcut id="transactionPointcut"                  expression="execution(* com.xxx.service..*Impl.*(..))" />    <!-- 指定在txAdvice切入点应用txAdvice事务增强处理 -->    <aop:advisor pointcut-ref="transactionPointcut"                 advice-ref="transactionAdvice" /></aop:config>

原文地址:https://www.cnblogs.com/doudou-123/p/9940761.html

时间: 2024-11-05 17:26:15

hibernate saveOrUpdate()方法执行数据库操作不成功的相关文章

Hibernate (面向对象的数据库操作)

JPA,java persistance api,java持久层接口,即与数据库打交道的一些接口.实现交给各个厂商去实现. ORM,Object/Relation Mapping,对象/关系数据库映射.面向对象的数据库操作,底层仍是sql语句. 获得 hibernate的maven依赖. <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactI

用php连接数据库,并执行数据库操作

1,建立与数据库之间的连接 (能通过php代码执行一个SQL语句得到查询的结果) <?php mysqli_connect('127.0.0.1' , 'root' , 123456' , 'demo01'); 这里要注意两个问题: ①mysqli 是一个额外的扩展,如果想要使用这个扩展提供的函数,必须开启扩展 extension_dir 在php 的配置文件里解除注释 extension=php mysqli.dll (这里特别提醒,修改php的配置文件之后可以 用 phpinfo()函数看看

thinkphp辅助方法,数据库操作

原文地址:https://www.cnblogs.com/supe/p/8439333.html

C#数据库操作通用方法类

平时使用的数据库操作类整理更新后备份,记录下来以供以后使用,并顺便分享给大家一起交流.直接上源码: 整个底层操作方法分为4个类,基础方法类:SqlBase 基础工具类:SqlTool 日志类:DbLog  和MSSQL操作类:MsSqlHelper. 由于平时工作未用到其他类型数据库,因此未整理其他数据库的操作类,以后用到的话会进行更新. 首先是通用的数据库底层操作方法整理: /// <summary> /// 数据库操作基础方法类 /// </summary> public cl

Yii 1 转载 数据库操作

Yii 1.0数据库操作 查询.增加.更新.删除 1.根据条件查询一个集合 $objectResult=Post::model()->findAll($condition,$params);$objectResult=Post::model()->findAll("username=:name",array(":name"=>$username));$objectResult=RepairItem::model()->findAll(&quo

Java8 Lambda表达式应用案例 -- 单线程游戏服务器+异步数据库操作

前段时间我们游戏服务器的开发环境升级到了Java8,这两天我又把服务器的线程模型重新设计了一下,用上了Lambda表达式.Lambda表达式确实能够大幅简化Java代码,特别是丑陋不堪的匿名内部类,这篇文章主要就是想和大家分享这一点. 线程模型 首先简单介绍一下我们游戏服务器的线程模型,大致如下图所示: Netty线程池只处理消息的收发,当Netty收到消息之后,会交给游戏逻辑线程处理.由于是单线程在处理游戏逻辑,所以每一个消息必须很快处理完,也就是说,不能有数据库等耗时操作,不然逻辑线程很可能

Mybatis源码解析(四) —— SqlSession是如何实现数据库操作的?

Mybatis源码解析(四) -- SqlSession是如何实现数据库操作的? ??如果拿一次数据库请求操作做比喻,那么前面3篇文章就是在做请求准备,真正执行操作的是本篇文章要讲述的内容.正如标题一样,本篇文章最最核心的要点就是 SqlSession实现数据库操作的源码解析.但按照惯例,我这边依然列出如下的问题: 1. SqlSession 是如何被创建的? 每次的数据库操作都会创建一个新的SqlSession么?(也许有很多同学会说SqlSession是通过 SqlSessionFactor

十三、EnterpriseFrameWork框架核心类库之数据库操作(多数据库事务处理)

本章介绍框架中封装的数据库操作的一些功能,在实现的过程中费了不少心思,针对不同数据库的操作(SQLServer.Oracle.DB2)这方面还是比较简单的,用工厂模式就能很好解决,反而是在多数据库同时操作方面走了不少弯路:现在从以下几个方面进行说明: 一.不同数据库操作 此处用到了工厂模式来实现不同数据库操作,看下图 AbstractDatabase是一个抽象类,定义了所有对数据库的操作抽象方法,包括执行一个SQL语句.执行存储过程.事务操作等 [Serializable] public abs

Java8 Lambda表达应用 -- 单线程游戏server+异步数据库操作

前段时间我们游戏server升级到开发环境Java8,这些天,我再次server的线程模型再次设计了一下,耗费Lambda表情. LambdaJava代码.特别是丑陋不堪的匿名内部类,这篇文章主要就是想和大家分享这一点. 线程模型 首先简介一下我们游戏server的线程模型.大致例如以下图所看到的: Netty线程池仅仅处理消息的收发,当Netty收到消息之后.会交给游戏逻辑线程处理.因为是单线程在处理游戏逻辑,所以每个消息必须非常快处理完.也就是说,不能有数据库等耗时操作.不然逻辑线程非常可能