事务中先插入数据,再根据id查询, 可以查询到数据
事务中先插入数据, 异步去查询, 如果事务没提交, 则查询不到刚插入的数据。
这个时候,需要在异步查询之前先将事务手动提交:
DataSourceTransactionManager dataSourceTransactionManager =SpringContextUtils.getBean(DataSourceTransactionManager.class);
TransactionDefinition transactionDefinition = SpringContextUtils.getBean(TransactionDefinition.class);
TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
try {
//提交事务
dataSourceTransactionManager.commit(transactionStatus);
} catch (Exception e) {
//回滚事务
dataSourceTransactionManager.rollback(transactionStatus);
throw e;
}
事务提交后,再次执行异步操作。