Eu estou na aula da criação das migrations, porém fiquei na dúvida de como devo preencher o create table no caso de ter entidades com listas que possuem a relação @OneToMany
Eu estou na aula da criação das migrations, porém fiquei na dúvida de como devo preencher o create table no caso de ter entidades com listas que possuem a relação @OneToMany
Oi!
A diferença é que em uma das tabelas vai precisar da chave estrangeira da outra.
Por exemplo, no próprio projeto do curso onde um tópico pode ter várias respostas:
@Entity
@Table(name = "topicos")
public class Topico {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String titulo;
private String mensagem;
@OneToMany(mappedBy = "topico")
private List<Resposta> respostas = new ArrayList<>();
//resto do codigo...
}
@Entity
@Table(name = "respostas")
public class Resposta {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String mensagem;
@ManyToOne
@JoinColumn(name = "topico_id")
private Topico topico;
//resto do codigo...
}
As migrations seriam algo como:
create table topicos(
id bigint not null auto_increment,
titulo varchar(50) not null,
mensagem varchar(255) not null,
primary key(id)
);
create table respostas(
id bigint not null auto_increment,
mensagem varchar(255) not null,
topico_id bigint not null,
primary key(id),
foreign key(topico_id) references topicos(id)
);