hibernate saveOrUpdate()方法执行数据库操作不成功
Posted 呼丿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>
以上是关于hibernate saveOrUpdate()方法执行数据库操作不成功的主要内容,如果未能解决你的问题,请参考以下文章
Hibernate中saveOrUpdate()和merge()的区别
关于hibernate的saveOrUpdate方法的一个问题
jooq中hibernate的saveOrUpdate方法的等价物是啥?
hibernate save,update,saveorupdate方法有什么区别