Spring+Hibernate事务配至业务层导致业务层方法无法正确返回操作结果

tcgdy0201 2010-02-24 05:09:54
代码类似以下情况,到电影院购票的方法

public boolean buyTicket(){
boolean result = true;
try{
//影院票子库存减少
db.update(库存-1);
//用户金钱减少
db.update(用户金钱-1);
//用户票子多了一张
db.update(用户票子+1);
}catch(Exception){
result =false;
}
return result;
}

现在事务的回滚没问题,但所有的sql都是等buyTicket方法跑完才执行,也就是说在调试方法的时候整个流程一帆风顺,result永远是true。等方法执行完了才开始执行sql,有问题然后才抛Exception。但调用buyTicket的地方以为已经买成功了。如果把事物配在持久层,就执行update就一句sql语句了。不存在以上的问题,但多事务的回滚就不行了。。
求解惑。
...全文
52 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcgdy0201 2010-02-25
  • 打赏
  • 举报
回复
没人回复。。。顶下。。。。。。
tcgdy0201 2010-02-24
  • 打赏
  • 举报
回复
引用 1 楼 lrbyantai 的回复:
引用楼主 tcgdy0201 的回复:所有的sql都是等buyTicket方法跑完才执行
你想要的不就是这样的结果吗??

没有看出你有什么好困惑的


我知道呀。。但如果程序回滚了,说明哪里出错了,buyTicket()方法返回的还是true
蛋黄车 2010-02-24
  • 打赏
  • 举报
回复
引用楼主 tcgdy0201 的回复:
所有的sql都是等buyTicket方法跑完才执行

你想要的不就是这样的结果吗??

没有看出你有什么好困惑的

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧