編寫(xiě)測(cè)試代碼:
@Test
public void callBack() throws InterruptedException {
ExecutorService executorService = Executors.newFixedThreadPool(100);
for (int i = 0; i < 100; i++) {
executorService.execute(new Runnable() {
@Override
public void run() {
try {
payBack();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
public void payBack() {
String tradeNo = "202259607180675101";
//log.info("--------"+tradeNo+"--------");
//通過(guò)tradeNo查詢訂單狀態(tài)逗柴。交易單號(hào)
ProductOrderDO productOrderDO = productOrderService.queryProductOrderState(tradeNo);
if(productOrderDO == null) {
log.error("--------fail--------------------"); ;
}
log.info("--------"+tradeNo+"--------");
String orderState = productOrderDO.getState();
//sleep(1000l);
log.info("--------"+orderState+"--------");
}
發(fā)現(xiàn)SQL根本沒(méi)有執(zhí)行,出現(xiàn)報(bào)錯(cuò)
[“SqlSession[xxx] was not registered for synchronization because synchronization is not active
原因是Sqlsession未注冊(cè)同步专甩,同步注冊(cè)未激活,JDBC connection不能被Spring所托管钉稍,涤躲,,callBack方法加事務(wù)注解@Transactional就可以了