@Transactional
	@CachePut(value = DIST_CACHE_USERS, key = "#user.userId")
	public User saveWithoutFollowers(User user) {
		if (user.getPassword() != null && isBlank(user.getPassword())) {
			user.setPassword(null);
		}
		final User existing = userRepository.findOneByUserId(user.getUserId());
		if (existing != null) {
			// First expire existing followers.
			final List<User> existingFollowers = existing.getFollowers();
			if (existingFollowers != null) {
				for (User eachFollower : existingFollowers) {
					userCache.evict(eachFollower.getUserId());
					userModelCache.evict(eachFollower.getId());
				}
			}
			user = existing.merge(user);
		}
		return userRepository.save(user);
	}
Save user.

@param user include id, userID, fullName, role, password.
@return User
ngrinder-controller/src/main/java/org/ngrinder/user/service/UserService.java