Spring Data Repository Async Save - PullRequest
       23

Spring Data Repository Async Save

0 голосов
/ 22 марта 2019

У меня есть служба, использующая Spring Data Redis и CrudRepository, и в рамках одного из моих методов службы она выполняет запрос, а затем сохранение. Я хочу сделать сохранение асинхронным. Можно ли сделать метод сохранения в моем расширенном CrudRepository асинхронным?

В приведенном ниже примере я хочу, чтобы операция save была асинхронной.

public interface MyRepository extends CrudRepository<User, String> {
    public List<User> findByUserId(Long userId);
}

public class MyServiceImpl implements MyService {

    @Autowired
    private MyRepository myRepository;

    public void addUser(User newUser) {
        List<User> users = myRepository.findByUserId(newUser.getUserId());
        // other operations on users
        myRepository.save(); // want this be async
    }
}

1 Ответ

1 голос
/ 24 марта 2019

Вы можете снова объявить метод save в MyRepository и добавить аннотацию с @Async.

public interface MyRepository extends CrudRepository<User, String> {
    public List<User> findByUserId(Long userId);
    @Async
    public <S extends User> S save(S entity);
}
...