Spring@Transaction方法调用同一类中的方法,不工作吗?我是Spring事务的新手。有些事我觉得很奇怪,也许我确实理解得很清楚。我希望在方法级别上有一个事务处理,并且在同一个类中有一个调用者方法,看起来它不是这样的,它必须从单独的类中调用。我不明白这怎么可能。如果有人知道如何解决这个问题,我将非常感激。我想使用同一个类来调用带注释的事务性方法。以下是代码:public class UserService {
@Transactional
public boolean addUser(String userName, String password) {
try {
// call DAO layer and adds to database.
} catch (Throwable e) {
TransactionAspectSupport.currentTransactionStatus()
.setRollbackOnly();
}
}
public boolean addUsers(List<User> users) {
for (User user : users) {
addUser(user.getUserName, user.getPassword);
}
} }
3 回答
互换的青春
TA贡献1797条经验 获得超6个赞
<bean id="userService" class="your.package.UserService">
<property name="self" ref="userService" />
...</bean>public class UserService {
private UserService self;
public void setSelf(UserService self) {
this.self = self;
}
@Transactional
public boolean addUser(String userName, String password) {
try {
// call DAO layer and adds to database.
} catch (Throwable e) {
TransactionAspectSupport.currentTransactionStatus()
.setRollbackOnly();
}
}
public boolean addUsers(List<User> users) {
for (User user : users) {
self.addUser(user.getUserName, user.getPassword);
}
} }
慕后森
TA贡献1802条经验 获得超5个赞
@Service@Transactionalpublic class UserServiceImpl implements UserService{
@Autowired
private UserRepositroy repositroy;
@Autowired
private UserService userService;
@Override
public void update(int id){
repository.findOne(id).setName("ddd");
}
@Override
public void save(Users user) {
repositroy.save(user);
userService.update(1);
}}添加回答
举报
0/150
提交
取消
