У меня есть следующие два метода для хранения одного пользователя и нескольких пользователей в mongodb с использованием данных Spring JPA MongoRepository.Если какое-либо исключение произошло в методе, это не откат.Я могу найти данные в базе данных.
@Override
@Transactional(propagation = Propagation.REQUIRED)
public UserRequest save(UserRequest userRequest) throws UserException {
logger.info("Saving the user information {} ", userRequest);
User user = new User(sequenceService.getNextSequenceFor(SequenceNames.USER));
if("admin".equals(userRequest.getFirstName())) {
throw new UserException("Resvered name canot be used : " + userRequest.getFirstName());
}
BeanUtils.copyProperties(userRequest, user,"id");
user = userRepository.save(user);
userRequest.setId(user.getId());
return userRequest;
}
@Override
@Transactional
public List<UserRequest> save(List<UserRequest> users) throws UserException {
for (UserRequest userRequest : users) {
save(userRequest);
}
return users;
}
@Repository
public interface UserRepository extends MongoRepository<User, String> {
}
Запрос пользователя:
[
{
"firstName": "John",
"lastName": "A",
"mobileNo": "9898989892",
"emailId": "john.a@gmail.com"
},
{
"firstName": "admin",
"lastName": "A",
"mobileNo": "9898989892",
"emailId": "admin.a@gmail.com"
}
]
Этот код сохраняет данные Джона в базе данных.Это откат только для пользователя admin.Это не откат для всех пользовательских данных.Частичного отката не происходит.