经过进一步了解得知
@Transactional注解需要配置
但是前提是只对已经注入的bean起作用,(配置在xml中的bean)
但是对@Controller这样未经xml配置的bean却不起作用,如何解决这个问题呢
原问题:我使用JPA集成spring的配置
[code="java"]
<tx:annotation-driven transaction-manager="jpaTxManager" />[/code]
然后只有在每个daoImpl前加@Transactional 增删改才可以生效
如果不加@Transactional 则调用增删改方法不会生效
[code="java"]
@Transactional
class UserDaoImpl{
public void save(){
xxxx
}
}
class RoleDaoImpl{
public void save(){
xxxx
}
}
[/code]
问题:
我在另一个类中调用Dao
如:
class UserController{
UserDao userDao;
RoleDao roleDao;
@Transactional
public void saveUserRole(){
userDao.save(xxx);
roleDao.save(yyy);
}
}
但是controller中两个save方法仍然是分别得事务,比如userDao插入失败,但是roleDao却插入成功
如何让userDao 与 roleDao 同时成功,同时回滚
@Transactional 这个具体用法我搜过相关配置资料了,一一试过都不大管用, 不知道这个的事务处理机制是怎样的。。。