正在学习声明式事务,搞不定了,没回滚,不知道为什么,求教public interface MyUserDAO { public void save(Myuser transientInstance);
}public class MyUser extends HibernateDaoSupport implements MyUserDAO {
private static final Log log = LogFactory.getLog(MyUser.class); protected void initDao() {
// do nothing
} public void save(Myuser transientInstance) {
log.debug("saving Myuser instance");
try {
log.debug("save successful");
getHibernateTemplate().save(transientInstance);
throw new RuntimeException(); //抛出异常,测试回滚
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}} <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<tx:advice id="txAdviceAddUser" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*" />
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor pointcut="execution(* com.zjm.study.dao.MyUserDAO.*.*(..))" advice-ref="txAdviceAddUser" />
</aop:config>
}public class MyUser extends HibernateDaoSupport implements MyUserDAO {
private static final Log log = LogFactory.getLog(MyUser.class); protected void initDao() {
// do nothing
} public void save(Myuser transientInstance) {
log.debug("saving Myuser instance");
try {
log.debug("save successful");
getHibernateTemplate().save(transientInstance);
throw new RuntimeException(); //抛出异常,测试回滚
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}} <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<tx:advice id="txAdviceAddUser" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*" />
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor pointcut="execution(* com.zjm.study.dao.MyUserDAO.*.*(..))" advice-ref="txAdviceAddUser" />
</aop:config>
解决方案 »
- 错误:org.apache.jasper.JasperException: java.lang.NullPointerException
- 关于jasperReport+iReport自定义数据类型的问题.
- J2EE-SDK的安装问题,应用服务器无法启动
- 请帮忙分析一下:axis1.4编写的web service client
- 在JAVA中用什么方法可以删除10M以上的EXCEL文件!求高手帮忙
- struts里,控件如何起资源束的值
- struts,取得oracle存放blob数据保存为文件,在线等
- 我已经把mm.mysql-2.0.4-bin.jar等文件都放到了lib下了,hibernate还是提示找不到驱动?
- 普通java代码如何调用hibernate4.0 实现annotation
- 如何向数据库添加数据不被覆盖
- 高手来看下:struts中使用DynaValidatorForm 奇怪的错误
- SSH整合报错!!急
这样,当出现异常时,就回滚了。
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED"/> //配置事务级别
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="daoMethods" expression="execution(* com.zjm.study.dao.*.*(..))" /> //你的写错了 按照这样写
<aop:advisor advice-ref="txAdviceAddUser" pointcut-ref="daoMethods" />
</aop:config>