MetadataRatingByIp ratingEntity = new MetadataRatingByIp();
ratingEntity.setRating(rating);
ratingEntity.setId(new MetadataRatingByIpId(metadataId, ipAddress));
final MetadataRatingByIpRepository ratingByIpRepository = _applicationContext.getBean(MetadataRatingByIpRepository.class);
ratingByIpRepository.save(ratingEntity);
//
// calculate new rating
//
final int newRating = ratingByIpRepository.averageRating(metadataId);