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 ✓.