1
resposta

Tabelas com Relacionamentos

Posso estar enganado, mas não vi uso de anotações pra fazer relacionamentos entre tabelas. Pelo que entendi, o embeddable tira essa necessidade. Em projetos grandes, acredito haver necessidade de relacionar tabelas, seja por relacionamento onetomany.....ou manytoone. Penso que seria importante dentro do Crud trabalharmos alem do embeddable, o uso de entidades separadas pra se fazer o relacionamento. Ademais, o curso é excelente e parabéns pelo sua excelente didática.

1 resposta

Olá Marlon! Tudo joia?

Fico feliz em saber que você está gostando do curso e da didática! Vamos falar sobre relacionamentos entre tabelas no contexto do Spring Boot e JPA.

Você está correto ao notar que, em projetos maiores, é comum e muitas vezes necessário utilizar relacionamentos entre tabelas. As anotações como @OneToMany, @ManyToOne, @OneToOne e @ManyToMany são fundamentais para definir esses relacionamentos entre entidades em um banco de dados relacional.

O uso de @Embeddable e @Embedded é mais adequado para casos em que você deseja incluir um objeto em uma entidade sem criar uma tabela separada para ele, como um valor embutido. Isso é útil para reutilizar um conjunto de atributos em várias entidades, mas não substitui a necessidade de relacionamentos entre tabelas.

Por exemplo, se você tiver uma entidade Pedido e uma entidade Cliente, e cada pedido pertence a um cliente, você poderia usar @ManyToOne na entidade Pedido para referenciar o Cliente:

@Entity
public class Pedido {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @ManyToOne
    @JoinColumn(name = "cliente_id")
    private Cliente cliente;

    // outros atributos e métodos
}

E na entidade Cliente, você poderia ter:

@Entity
public class Cliente {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @OneToMany(mappedBy = "cliente")
    private List<Pedido> pedidos;

    // outros atributos e métodos
}

Essas anotações ajudam o JPA a entender como as entidades estão relacionadas e a gerenciar as operações de banco de dados adequadamente.

Espero ter ajudado e bons estudos!

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