请参阅代码.
当我调用方法@Async loadMarkUpPCT()时,数据不会被提交到表中.它表现得好像是非牵引性的.
当我从loadMarkUpPCT(Class 1)中删除@Async时,即非异步,然后提交数据并按预期正常:transactional)
我期待与@Async和@Transactional有相同的结果,但它不是.请解释或我做错了什么?
编辑:我刚编辑发布代码+日志
流程:AppDataLoaderController调用AppDataLoaderService调用DataMigrationService调用JpaDataMigrationDao
package concepts.web.rest.resource.spring.impl;
@Controller
@RequestMapping("/appdataloader")
public class AppDataLoaderController {
@RequestMapping("/loadMarkupPct")
@ResponseStatus(HttpStatus.ACCEPTED)
public void loadMarkUpPCT() {
try {
this.appDataLoaderService.loadMarkUpPCT();
} catch (ServiceException e) {
e.printStackTrace();
}
}
package concepts.service.impl;
@Service("appDataLoaderService")
public class AppDataLoaderServiceImpl implements AppDataLoaderService {
@Async
@Override
public void loadMarkUpPCT() throws ServiceException {
logger.debug("@Async loadMarkUpPCT");
dataMigrationService.loadMarkUpPCT();
}
package concepts.service.impl;
@Service
@Scope("prototype")
public class DataMigrationServiceImpl implements DataMigrationService {
@Override
public void loadMarkUpPCT() throws ServiceException {
// TODO Auto-generated method stub
Assert.notNull(markUpPCTDataLoader);
List<MarkUpPCT> markUpPCTs=markUpPCTDataLoader.getMarkupCoef(); …Run Code Online (Sandbox Code Playgroud)