我用的是struts1+hibernate+spring,事务的配置在这里面配置<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean><bean id="baseTransactionProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="*">
PROPAGATION_REQUIRED,ISOLATION_DEFAULT,timeout_3000,-Exception
</prop>
<prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="submitUpdatePersonInfo">PROPAGATION_NOT_SUPPORTED,-Exception</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly,-Exception</prop>
<prop key="query*">PROPAGATION_REQUIRED,readOnly,-Exception</prop>
<prop key="list*">PROPAGATION_REQUIRED,readOnly,-Exception</prop>
</props>
</property>
</bean>
我在业务逻辑层写一个方法,在spring配置文件里面配置不让
<prop key="submitUpdatePersonInfo">PROPAGATION_NOT_SUPPORTED,-Exception</prop>
spring来管理事务,自己手动控制事务.
这个方法主要是来调用存储过程,根据存储过程的返回值来做判断存储过程是否执行成功.如果存储过程返回为1为成功,其他值就不成功.但是如果是其他值的时候,我想可以回滚这个存储过程里面执行的更新.不知道怎么来实现.hibernatestrutsspring事务存储过程
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean><bean id="baseTransactionProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="*">
PROPAGATION_REQUIRED,ISOLATION_DEFAULT,timeout_3000,-Exception
</prop>
<prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="submitUpdatePersonInfo">PROPAGATION_NOT_SUPPORTED,-Exception</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly,-Exception</prop>
<prop key="query*">PROPAGATION_REQUIRED,readOnly,-Exception</prop>
<prop key="list*">PROPAGATION_REQUIRED,readOnly,-Exception</prop>
</props>
</property>
</bean>
我在业务逻辑层写一个方法,在spring配置文件里面配置不让
<prop key="submitUpdatePersonInfo">PROPAGATION_NOT_SUPPORTED,-Exception</prop>
spring来管理事务,自己手动控制事务.
这个方法主要是来调用存储过程,根据存储过程的返回值来做判断存储过程是否执行成功.如果存储过程返回为1为成功,其他值就不成功.但是如果是其他值的时候,我想可以回滚这个存储过程里面执行的更新.不知道怎么来实现.hibernatestrutsspring事务存储过程
Session session = super.getSession();
try {
session.connection().setAutoCommit(false);
} catch (HibernateException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
session.beginTransaction().begin();
}
public void endTransaction2() {
Session session = super.getSession();
session.beginTransaction().commit();
try {
session.connection().setAutoCommit(true);
} catch (HibernateException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}public void endTransaction2() {
Session session = super.getSession();
session.beginTransaction().rollback();
try {
session.connection().setAutoCommit(true);
} catch (HibernateException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
调用dao里面的
dao.beginTransaction2();dao.endTransaction2();dao.rollbackTransaction2();上面最后的endTransaction2()是这个,用来回滚事务的,但是我调用这个来回滚存储过程好像不行.
public void endTransaction2()这个方法改成rollbackTransaction2();这个方法名