Spring 怎么配置service层某个方法是事务的
@OverridepublicvoidaddUser(Useruser){try{Loglog=newLog();log.setContent("添加了"+user.ge...
@Override
public void addUser(User user) {
try{
Log log = new Log();
log.setContent("添加了"+user.getUsername()+"用户");
logDao.addLog(log);
userDao.save(user);
}catch (Exception e) {
e.printStackTrace();
}
}
这个是Service层UserService类的addUser()方法,我把service层配置了事务
现在userDao.save(user) 这个方法出错了,logDao.addLog(log) 这条记录会回滚,这是正确的
但是如果
@Override
public void addUser(User user) {
try{
Log log = new Log();
log.setContent("添加了"+user.getUsername()+"用户");
logDao.addLog(log);
userDao.save(user);
throw new RuntimeException();
}catch (Exception e) {
e.printStackTrace();
}
}
这样执行完userDao.save(user);(这个方法是正确的)往下执行addUser()这个方法抛出异常,结果是这两条数据都插进去了,我想要的是这两条也回滚 应该怎么做
问题解决了 去掉try catch就好了 郁闷 现在百度知道无法结贴 展开
public void addUser(User user) {
try{
Log log = new Log();
log.setContent("添加了"+user.getUsername()+"用户");
logDao.addLog(log);
userDao.save(user);
}catch (Exception e) {
e.printStackTrace();
}
}
这个是Service层UserService类的addUser()方法,我把service层配置了事务
现在userDao.save(user) 这个方法出错了,logDao.addLog(log) 这条记录会回滚,这是正确的
但是如果
@Override
public void addUser(User user) {
try{
Log log = new Log();
log.setContent("添加了"+user.getUsername()+"用户");
logDao.addLog(log);
userDao.save(user);
throw new RuntimeException();
}catch (Exception e) {
e.printStackTrace();
}
}
这样执行完userDao.save(user);(这个方法是正确的)往下执行addUser()这个方法抛出异常,结果是这两条数据都插进去了,我想要的是这两条也回滚 应该怎么做
问题解决了 去掉try catch就好了 郁闷 现在百度知道无法结贴 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询