Spring Data Repository异步保存

时间:2019-03-22 20:45:26

标签: spring asynchronous spring-data-redis

我有一个使用Spring Data Redis和CrudRepository的服务,并且在我的一种服务方法中,它先执行查询,然后进行保存。我想使保存异步。是否可以使扩展的CrudRepository中的save方法异步?

在下面的示例中,我希望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 个答案:

答案 0 :(得分:0)

您可以在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);
}