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
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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)
);