在Spring Boot中从Controller调用update()时使用@Transactional进行注释,并且此update()调用update2()。因此,当我尝试使用update2()将重复值保存到数据库中时,不会向update()抛出异常,而是转到Controller方法。我想在update()中处理异常。
@Transactional(rollbackFor = Exception.class)
public String update()
{
try
{
return update2();
}
catch (Exception e) {
return "Exception in update()";
}
}
public String update2() throws Exception
{
List<Employee> l = repo.findAll();
for(int i=0 ; i<2 ; i++)
{
if(i==0)
l.get(i).setUsername("duplicate_value");
else
l.get(i).setUsername("unique_value");
repo.save(l.get(i));
}
return "success";
}
答案 0 :(得分:2)
正如评论中提到的Hadi Moloodi一样,您的target-module.ts:
@Module({
imports: [SharedModule]
})
export class TargetModule {}
注释使您的@Transactional
无法被捕获。
您可以尝试将Exception
注释移至@Transactional
方法,如下所示:
update2