Tenho algumas perguntas do transactional e do Repository:
Quando utilizamos um metodo que resgata informações de um registro (.getOne()) e atualizamos o objeto que foi populado com informações do banco e utilizamos o @Transactional, esse @Transactional verifica se teve alguma alteração no Objeto TOPICO e commita as informações no banco, isso? Como ele faz isso?Como ele sabe que esse objeto não é um objeto simples? O objeto Topico seria como se fosse um ponteiro, uma referencia do registro que esta no banco, é isso?
Podemos utilizar essa mesma logica quando resgatamos uma lista de registros? Atualizar varios ao mesmo tempo com o @Transactional com algum valor em comum?
O @Transactional esta sendo usado no Controller, tem que ser padrão? Não poderia ser utilizado na classe que vc utiliza o repository(No projeto foi utilizado o repository na classe do Topico)? Se tivesse uma camada de serviço por exemplo que tem uma chamada do repository e o objeto foi atualizado nessa camada e retornado para a camada do Controller, eu poderia colocar o @Transactional na camada do serviço?