67,515
社区成员
发帖
与我相关
我的任务
分享
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- 事务拦截器 -->
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<!-- 配置事务属性 -->
<property name="transactionAttributes">
<props>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="set*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 自动代理 -->
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>BizFlRecVouch</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"></ref>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<!--自动生成表结构 <prop key="hibernate.hbm2ddl.auto">create</prop>-->
<!-- 是否在日志中输出的SQL 语句格式化成易读形式 -->
<prop key="hibernate.format_sql">true</prop>
<!-- 是否显示统计形式,一般在测试阶段使用 -->
<prop key="hibernate.generate_statistics">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/flsoft/hgjlserver/module/Code.hbm.xml</value>
<value>com/flsoft/hgjlserver/module/Customer.hbm.xml</value>
.........
</list>
</property>
</bean>
<bean id="BizFlRecVouch" class="com.flsoft.hgjlserver.serverImpl.BizFlRecVouchImpl">
<property name="isyssetDao">
<ref bean="FlSysSetDAO"/>
</property>
<property name="itaskDao">
<ref bean="TaskDAO"/>
</property>
</bean>
public boolean test();
public boolean test() {
Task task = new Task("9", "9");
itaskDao.save(task);
FlSysSet flsysSet = new FlSysSet();// 此处是错误的
isyssetDao.save(flsysSet);
return true;
}
//结果是 Task 仍然保存了,FlSysSet 错误,并没有回滚!
public class TaskDaoImpl extends HibernateDaoSupport implements ITaskDao {
public boolean save(Task task) {
// TODO Auto-generated method stub
//加tyr catch 又去掉了..
log.debug("saving Task instance");
Session session = getSession();
session.beginTransaction();
getHibernateTemplate().save(task);
session.beginTransaction().commit();
session.close();
log.debug("save successful");
return true;
}
}
<bean name="BizFlRecVouch" parent="transactionInterceptor">
<property name="target">
<ref bean="BizFlRecVouchTarget" />
</property>
</bean>
<bean id="BizFlRecVouchTarget" class="com.flsoft.hgjlserver.serverImpl.BizFlRecVouchImpl" abstract="false" lazy-init="default" autowire="default"
dependency-check="default">>
<property name="isyssetDao">
<ref bean="FlSysSetDAO"/>
</property>
<property name="itaskDao">
<ref bean="TaskDAO"/>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="baseTransaction" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager" ref="transactionManager"/>
<property name="proxyTargetClass" value="true"/>
<property name="transactionAttributes">
<props>
<prop key="list*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="count*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="execute**">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="search*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="preAdd*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="save*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="listDel*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="app*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="check*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="tostack*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="cancel*">PROPAGATION_REQUIRED,-Exception</prop>
</props>
</property>
</bean>
<!-- 公司 -->
<bean name="companyService" parent="baseTransaction">
<property name="target">
<ref bean="companyServiceTarget" />
</property>
</bean>
<bean id="companyServiceTarget"
class="com.service.impl.basic.CompanyServiceImpl"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="commonDao">
<ref bean="commonDao" />
</property>
</bean>