Spring Data: Override save method

前端 未结 11 1260
温柔的废话
温柔的废话 2020-11-27 05:30

I\'m considering spring data for a project. Is it possible to override the per default generated save method? And if yes, how?

11条回答
  •  温柔的废话
    2020-11-27 06:03

    To provide override of default generated save method you need to use aggregation of Spring Data repository implementation inside your own custom repository implementation.

    Repository interface:

    public interface UserRepository extends CrudRepository{
    
    }
    

    Your repository implementation:

    @Repository("customUserRepository")
    public class CustomUserRepository implements UserRepository {
    
        @Autowired
        @Qualifier("userRepository") // inject Spring implementation here
        private UserRepository userRepository;
    
        public User save(User user) {
            User user = userRepository.save(entity);
            // Your custom code goes here
            return user;
        }
    
        // Delegate other methods here ...
    
        @Override
        public User findOne(String s) {
            return userRepository.findOne(s);
        }
    }
    

    Then use your custom implementation in your service:

    @Autowired
    @Qualifier("customUserRepository")
    private UserRepository userRepository;
    

提交回复
热议问题