当服务类没有Jpa存储库的实现时,我的理解是用Transactional注释它是错误的,例如这个服务类不应该有@Transactional
@Service
public class BillingAddressServiceImpl implements BillingAddressService {
public BillingAddress setByUserBilling(UserBilling userBilling, BillingAddress billingAddress) throws DataAccessException
{
billingAddress.setBillingAddressName(userBilling.getUserBillingName());
billingAddress.setBillingAddressStreet1(userBilling.getUserBillingStreet1());
billingAddress.setBillingAddressStreet2(userBilling.getUserBillingStreet2());
billingAddress.setBillingAddressCity(userBilling.getUserBillingCity());
billingAddress.setBillingAddressState(userBilling.getUserBillingState());
billingAddress.setBillingAddressCountry(userBilling.getUserBillingCountry());
billingAddress.setBillingAddressZipCode(userBilling.getUserBillingZipCode());
return billingAddress;
}
}
答案 0 :(得分:0)
Transactional
注释代表声明Spring bean方法的数据库事务处理。
由于您的服务方法不能使用数据库,因此声明事务处理是没有意义的。
答案 1 :(得分:0)
事务性注释仅用于调用数据库的方法或类,事务注释的一个用途是回滚 - 这意味着当我们调用数据库时,将会记录成功调用之间的中间状态和它的原始状态,这是因为在失败的调用情况下,系统不会崩溃但能够返回其原始状态