Реализация метода save выглядит следующим образом:
@Transactional
public <S extends T> S save(S entity) {
if (entityInformation.isNew(entity)) {
em.persist(entity);
return entity;
} else {
return em.merge(entity);
}
}
Таким образом, он проверяет, является ли он новым или нет.Если оно новое, оно сохраняется, иначе оно сливается.В этом случае вы можете использовать метод CrudRepository.existsById(Integer id)
, чтобы проверить, существует он или нет, и, соответственно, вы можете выдать исключение следующим образом:
Пример:
public void updatePost(Post post) {
if(!repo.existsById(post.getPostId())){
throw new ResourceNotFoundException("Resource with given id"+post.getPostId()+" not exists");
}
repo.save(post);
}