请看:
@Transactional
public void method() {
writeToDb();
writeToFile();
} 我的需求是写入数据库失败,则操作失败,回滚,写入文件失败,同样操作失败,回滚数据库的操作。 表面上看这个没有什么问题,但是在遇到数据库中有约束时就会有问题了,比如数据库中某个字段长度为16,但是我们在写入数据库的时候写入了长为18的字段值,此时就会出现在writeToDb()方法处并没有抛出异常,实际上是在整个事务结束时commit的时候才抛出的异常,这样子就会有个问题,writeToFile()方法也正常执行了,很显然这样不对,如果将writeToFile移出事务,则无法对写文件失败的时候回滚数据库,请问,各位高手有什么高见,最好是能在writeToDb检查数据库的约束或者抛出异常。
@Transactional
public void method() {
writeToDb();
writeToFile();
} 我的需求是写入数据库失败,则操作失败,回滚,写入文件失败,同样操作失败,回滚数据库的操作。 表面上看这个没有什么问题,但是在遇到数据库中有约束时就会有问题了,比如数据库中某个字段长度为16,但是我们在写入数据库的时候写入了长为18的字段值,此时就会出现在writeToDb()方法处并没有抛出异常,实际上是在整个事务结束时commit的时候才抛出的异常,这样子就会有个问题,writeToFile()方法也正常执行了,很显然这样不对,如果将writeToFile移出事务,则无法对写文件失败的时候回滚数据库,请问,各位高手有什么高见,最好是能在writeToDb检查数据库的约束或者抛出异常。
解决方案 »
- JPA(Hibernate实现)测试时报如下异常: 有没有高人见到这种情况该怎样解决
- Java Web(MVC)系统重构的问题
- struts2文件上传
- nosuchmethod
- POI加载excel数据量大时内存溢出,如何解决?
- 关于JSF的子窗体向父窗体传递值
- JBoss Servlet+JSP+Hibernate 出错有人见过这错误信息?
- Tomcat见到那只“猫”以后,怎样调用自己的jsp页面啊?(100分跪求)
- 如何把XML文件导到oracle数据库中?
- java的GreggorianCalendar的小问题
- 工作流
- 求助!spring代理 webservice客户端的问题,困扰我好几天了
db.refreash();加上这句呢
db.refreash(); 具体点 可以吗
http://hi.baidu.com/adolfjeffs/blog/item/3018a2fd90e59d1ed8f9fd79.html