SSH注解的方式更新数据库,出现更新语句,但数据并未更新到数据库 我采用的是注解的方式@Transactional,这个应该是自动提交事务的吧,但更新语句出现后,数据并未更新到数据库,求解 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 @Transactional public void saveDeptIp(HsDept deptSaveIp) { hsDeptDao.save(deptSaveIp); }public void save(final T entity) { Assert.notNull(entity, "entity涓嶈兘涓虹┖"); getSession().saveOrUpdate(entity); logger.debug("save entity: {}", entity); } 追踪源码,发现DefaultSaveOrUpdateEventListener中的performSaveOrUpdate方法,返回的是PERSISTENT(持久化)的值0,由此应该是要往数据库更新的 换成@Transactional(propagation=Propagation.REQUIRED)试试 试了@Transactional(propagation=Propagation.REQUIRED)跟@Transactional(propagation=Propagation.REQUIRES_NEW)都不行 spring配置文件 ,是否开启了注解事务。 开启了:<!-- 使用annotation定义事务 --> <tx:annotation-driven transaction-manager="txManager" proxy-target-class="true" /> PS:我使用的是多数据源事务,不知道这个会不会有影响,查询都是没问题的 @Transactional 放到类上,别放到方法上。试试。 不行,如果查询没问题的,是不是可以排除Hibernate配置的问题? 在的,配置的是打扫整个项目 <!-- 使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入 --> <context:component-scan base-package="com.ff.study" /> 我用的是JTATransactionManager来实现多数据源事务管理的配置 <!-- 事务管理器 多数据源事务 --> <bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close"> <property name="forceShutdown"><value>true</value></property> </bean> <bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp"> <property name="transactionTimeout" value="300"/> </bean> <bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager" > <property name="transactionManager" ref="atomikosTransactionManager" /> <property name="userTransaction" ref="atomikosUserTransaction"/> <property name="allowCustomIsolationLevels" value="true"/> </bean> 我觉得也是配置的问题,java的配置真麻烦啊,轰轰轰轰,楼主耐心点看 尝试在配置文件中加入<tx:annotation-driven/> 下载的tomcat没有源代码 【求助】要用javax.sql、sun.jdbc.odbc等,但src.zip中无对应java文件 Spring的MVC 询问有关列名无效的问题 Hibernate注释复合主键的问题 <form: action>的简单问题 50分来赚 项目名,更改之后,问题....请大侠帮忙.... 如何用JAVA代码取代WebService的WSDL文件中的soap:address 元素 hibernate的many-to-one查询结果如何在jsp上用struts显示出来 Tomcat启动问题 如何用io写文件追加内容? FCKeditor3.6.2的使用方法
public void saveDeptIp(HsDept deptSaveIp)
{
hsDeptDao.save(deptSaveIp);
}public void save(final T entity) {
Assert.notNull(entity, "entity涓嶈兘涓虹┖");
getSession().saveOrUpdate(entity);
logger.debug("save entity: {}", entity);
}
@Transactional(propagation=Propagation.REQUIRED)
试试
<tx:annotation-driven transaction-manager="txManager" proxy-target-class="true" />
PS:
我使用的是多数据源事务,不知道这个会不会有影响,查询都是没问题的
放到类上,别放到方法上。试试。
<!-- 使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入 -->
<context:component-scan base-package="com.ff.study" />
<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close">
<property name="forceShutdown"><value>true</value></property>
</bean>
<bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp">
<property name="transactionTimeout" value="300"/>
</bean>
<bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager" >
<property name="transactionManager" ref="atomikosTransactionManager" />
<property name="userTransaction" ref="atomikosUserTransaction"/>
<property name="allowCustomIsolationLevels" value="true"/>
</bean>