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