Estou tentando ampliar esse projeto e decidi criar as classes Produto e Categoria, porém, não consegui desenvolver uma migration para poder criar as tabelas no banco de dados.
Posso criar uma única nova Migration para gerar as duas tabelas de uma vez? Se não, tendo que criar duas novas Miogrations, posso fazer isso de uma vez só, criando dois arquivos de uma vez? Seria possível me ajudar a implementar essas Migrations? Já tentei várias formas e pesquisas.
Ps: Criei os getter, setters e construtores porque o Lombok as vezes dá problema.
Classe Produto:
package br.com.mercadoapp.mercadoapp.model;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
@Entity
@Table(name = "produtos")
public class Produto implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
@Size(max = 100)
private String nome;
@NotNull
@Size(max = 500)
private String Descricao;
private Double preco;
//private String imgUrl;
private Set<Categoria> categorias = new HashSet<>();
public Produto() {
}
public Produto(Long id, String nome, String descricao, Double preco) {
this.id = id;
this.nome = nome;
Descricao = descricao;
this.preco = preco;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getDescricao() {
return Descricao;
}
public void setDescricao(String descricao) {
Descricao = descricao;
}
public Double getPreco() {
return preco;
}
public void setPreco(Double preco) {
this.preco = preco;
}
public Set<Categoria> getCategorias() {
return categorias;
}
@Override
public boolean equals(Object o) {
if (o == null || getClass() != o.getClass()) return false;
Produto produto = (Produto) o;
return Objects.equals(id, produto.id);
}
@Override
public int hashCode() {
return Objects.hashCode(id);
}
}
Classe Categoria
package br.com.mercadoapp.mercadoapp.model;
import jakarta.persistence.*;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
@Entity
@Table(name = "categorias")
public class Categoria implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nomeCategoria;
//Conjunto de produtos
private Set<Produto> produtos = new HashSet<>();
public Categoria() {
}
public Categoria(Long id, String nomeCategoria) {
this.id = id;
this.nomeCategoria = nomeCategoria;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNomeCategoria() {
return nomeCategoria;
}
public void setNomeCategoria(String nomeCategoria) {
this.nomeCategoria = nomeCategoria;
}
public Set<Produto> getProdutos() {
return produtos;
}
@Override
public boolean equals(Object o) {
if (o == null || getClass() != o.getClass()) return false;
Categoria categoria = (Categoria) o;
return Objects.equals(id, categoria.id);
}
@Override
public int hashCode() {
return Objects.hashCode(id);
}
}