spring mvc事务无法回滚 数据库spring mvc事务 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <aop:config> 配置了没有? 用的注解了,这个不需要配的吧?那你是不是陪了<context:component-scan> 却没有把test 所在路径配进去啊! hibernate里面用注解?我很不习惯,配置就是配置,代码就是代码,代码配置混在一起,可读性很差个人认为JDK1.6以后的annotation功能是完全错误的发展方向 用的注解了,这个不需要配的吧?那你是不是陪了<context:component-scan> 却没有把test 所在路径配进去啊!那应当不会,@Controller都能调到@Service里面这个test方法,说明是扫描到了的。 主要是现在出了个spring mvc导致注解方式大流行,网上也挺多了在说这不是耦合更高了嘛。 现在我去掉实现类里面的@Service注解然后在配置文件里配置<bean id="" class=""></bean>,这样事务就正确的。从启动信息里看在xml中配置和使用@Service注解方法我看这个bean都是创建了的,区别就是放配置里面时候创建时间比注解要早。 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" > <property name="dataSource" ref="dataSource" /> </bean> 把 你的 transactionManager 的配置 改为 下面 这样 就可以了 至于sessionFactory 你自己配一个<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> sessionFactory 怎么配,我是直接通过c3p0连接mysql的? 这样注解 @Transactional(rollbackFor=Exception.class)然后在方法中把异常抛出,不要捕获异常。 这样也没用,你看我的测试代码本就没有进行异常捕获。关键在于在xml中配置bean就可以,通过扫描的就不行。 sessionFactory 怎么配,我是直接通过c3p0连接mysql的?sessionFactory 配置网上一大堆 下面是我的一个项目的配置 你看看吧 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="packagesToScan" value="com.kuqu.crm.pojo"/> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> </props> </property> </bean> 我这里是没用到hibernate的,捣鼓了下还是解决了,原因为以下两点。1、mysql表模式用的是MyISAM不支持事务,但不知道为嘛在xml中定义bean却可以回滚操作。更改为InnoDB模式。2、application.xml和mvc.xml为父子容器关系,在mvc.xml中扫描的service不具有事务功能,因此service放在application.xml扫描。 JSP下拉框使用onchange事件提交表单到本文件后,会有刷新,怎么保持下拉框的选中状态为刚才选择的下拉框选项? 各位高手大哥门有没有人知道如何在jsp页面中产生验证码啊 基础0,从哪入手学web开发 一个简单的js问题,想晕了.... JSP连接MS-SQL200的问题?已经做了三天都没搞出来,急用! Servlet究竟用在何处? Tomcat外网访问不了是为什么? 关于文件路径的问题 使用JSP扩展标签,可否从标签内得到一个输出参数? 还是时间问题? 如何计算一个DIV在另一个DIV上的x轴和Y轴啊???? 求分页思路与技术
用的注解了,这个不需要配的吧?
那你是不是陪了<context:component-scan> 却没有把test 所在路径配进去啊!
用的注解了,这个不需要配的吧?
那你是不是陪了<context:component-scan> 却没有把test 所在路径配进去啊!
那应当不会,@Controller都能调到@Service里面这个test方法,说明是扫描到了的。
class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
<property name="dataSource" ref="dataSource" />
</bean>
把 你的 transactionManager 的配置 改为 下面 这样 就可以了 至于sessionFactory 你自己配一个
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
sessionFactory 怎么配,我是直接通过c3p0连接mysql的?
然后在方法中把异常抛出,不要捕获异常。
关键在于在xml中配置bean就可以,通过扫描的就不行。
sessionFactory 怎么配,我是直接通过c3p0连接mysql的?
sessionFactory 配置网上一大堆
下面是我的一个项目的配置 你看看吧
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="packagesToScan" value="com.kuqu.crm.pojo"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
1、mysql表模式用的是MyISAM不支持事务,但不知道为嘛在xml中定义bean却可以回滚操作。
更改为InnoDB模式。
2、application.xml和mvc.xml为父子容器关系,在mvc.xml中扫描的service不具有事务功能,因此service放在application.xml扫描。