Olá, Estou fazendo o curso do API Rest e foi utilizado o @Transactional para atualizar sem precisar usar o save do repositório. Fiz Algumas tentativas porém obtive êxito. Não sei se método de busca do recurso tem efeito sobre isso também. Usei o Transactional do javax também, e não obtive exito. Para funcionar usei o save, mas queria entender como usar ele em um método.
Estou usando spring boot 2.6.3
import org.springframework.transaction.annotation.Transactional;
@PutMapping("/{id}")
@Transactional
TopicResponseDTO update(@PathVariable Long id, @RequestBody @Valid UpdateTopicRequestDTO updateTopicRequestDTO) {
Optional<Topic> optionalTopic = this.topicRepository.findById(id);
if (optionalTopic.isEmpty()) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Tópico com id informado não existe!");
}
Topic topic = optionalTopic.get();
topic.setTitle(updateTopicRequestDTO.getTitle());
topic.setMessage(updateTopicRequestDTO.getMessage());
return TopicResponseDTO.convertToTopicResponseDTO(topic);
}