配置事务管理器,配置代理DAO,然后加入事务(对相应方法)。
解决方案 »
- Java 连接不上 Oracle 数据库
- java.lang.IllegalArgumentException
- 关于Webmail:Jwma和Claros各有什么优缺点?各能提供什么功能
- 请教:关于java写收邮件程序的字符集问题
- 一个关于JBOSS服务器下,MDB消息选择器的问题
- 问一个文档显示的实现方案
- 这个小程序大概怎么写呀(大家别怪问题幼稚),初学者,不入门
- 初学者,小问题
- 在jboss3中怎样配置连接sql server数据库?
- JBuilder+weblogic开发EJB的问题??
- J2EE项目在Linux下开发与在WINDOWS下开发的区别,各自的优势?
- 在Hibernate下怎样执行SQl语句
比如下段代码:
testDAO.update(table1);//No1
sql="UPDATE table2 SET filed1='1' WHERE type='U'";
statement.executeUpdate(sql);//No2
如果No2处理失败,该如何把No1的数据也回滚?
http://www.blogjava.net/oksonic/archive/2005/11/06/18370.html
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="userDAO" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
类似以上的是怎么定义的,你的
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
对应的注入类型不正确
testDAO.update(table1);//No1
....
Connection conn=...;
sql="UPDATE table2 SET filed1='1' WHERE type='U'";
try{
statement.executeUpdate(sql);//No2
conn.commit();
}catch(SQLException e){
conn.rollback();
throw new RuntimeException(e);
}
}
testDAO.update(table1);//No1
SessionFactory sf=..;
sql="UPDATE table2 SET filed1='1' WHERE type='U'";
new HibernateTemplate(sf).execute(new HibernateCallback(){
public Object doInHibernate(Session session) {
Connection conn=session.connection();
//你的sql语句
}
});