I\'m considering spring data for a project. Is it possible to override the per default generated save method? And if yes, how?
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;