Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Notação @Embedded e @Embeddeble

Olá professor, eu entendi o uso da anotação, porém minha dúvida é o seguinte: Numa aplicação utilizando um banco de dados relacional, não iria de encontro aos conceitos que aprendemos a cerca de normalização de banco de dados? Acho que faria mais sentido em um db nosql por exemplo.

Minha outra dúvida seria quanto a inserção se optássemos por duas tabelas distintas. Como os dados de medico e endereço seriam cadastrados simultaneamente, visto que os dados vem de uma única requisição?

2 respostas
solução!

Oi, Marcos! Tudo bem?

Inicialmente, em relação a utilização das anotações @Embedded e @Embeddable em um banco de dados relacional, é importante lembrar que essas anotações são usadas para representar um tipo de relacionamento entre entidades chamado composição. Nesse caso, um objeto é usado como parte de outro objeto, mas ambos não têm uma existência independente.

Por exemplo, um endereço (rua, cidade, estado) faz sentido apenas quando está associado a uma entidade, como uma pessoa ou um médico. Portanto, mesmo que pareça que estamos indo contra a normalização do banco de dados, na verdade estamos apenas representando uma relação natural entre entidades em nosso modelo de domínio.

Em relação à como inserir dados em duas tabelas distintas a partir de uma única requisição, podemos fazer isso usando uma transação, garantindo que ambas as operações de inserção ocorram com sucesso ou sejam revertidas em caso de falha. No Spring Boot, podemos usar a anotação @Transactional no método do serviço que lida com a criação do médico e do endereço.

Nesse caso, se algo der errado ao salvar o médico ou o endereço, a transação será revertida e nenhum dado será salvo no banco de dados.

Espero ter ajudado!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

Oi, Sarah! Tudo ótimo.

Entendi o lance da representação, já tinha ciência quanto ao relacionamento entre as entidades. E, quanto à inserção, o conceito de transações agora fez real sentido para mim. Obrigado pelos esclarecimentos!