问题描述
@Servicepublic class OrderServiceImpl implements OrderService { @Autowired OrderDao orderDao; public void methodA{ this.methodB(); System.out.println("****"); } @Transactional public void methodB{ Order order = new Order(); order.set(.....); orderDao.save(order); }}这里面有个问题,其他类调用methodA,为什么在A方法中保存order,而没有直接insert而是System.out.println("****")之后才insert呢?请问我应该怎么在之前就insert到数据库呢? 问题补充:请问下,我应该如何来配置或者调整来达到我想要的结果呢?javaliver 写道
解决方案
是hibernate不会把sql语句直接提交给数据库,而是先放在hibernate的缓存中等事务commit的时候一起提交,这样就导致sql语句执行的顺序与程序不一致
解决方案二:
引用请问下,我应该如何来配置或者调整来达到我想要的结果呢? 正常的java 程序就是 顺序执行的!也就是你想要的效果! 可能 hibernate做了些手脚吧! 你可以试试save完 立即刷新缓存或者不是有缓存
时间: 2024-12-03 06:51:37