Olá, estou desenvolvendo um projeto para controlar um restaurante com a seguinte regra de negócio:
Por se tratar de desafio simples sem autenticação e de não possuir usuários, não será necessário cadastrar o campo user_id, considere que deve ser listados todos os favoritos da API como se fossem os seus favoritos.Exemplo de rotas da API
- : Retorna todos os produtos cadastrados na API
 - : Retorna um produto cadastrado na API baseado no id
 - : Retorna todas as categorias cadastradas na API
 - : Retorna todas os pedidos que foram cadastrados na API
 - : Retorna todas as comidas favoritas que foram cadastrados na API
 
Meu problema é que o código está criando o banco de dados esperado, mas não está criando as tabelas. Já verifiquei o código de forma exaustiva e não sei onde estou errando.
Meu código é o seguinte:
package br.org.cesar.Challenge.Entity;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
@Entity
public class Produto {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id_Prod;
    private String name;
    private double preco;
    private boolean favorito;
    
    @ManyToOne
    private Categoria categoria;
    @ManyToMany(mappedBy = "produtos")
    private List<Pedido> pedidos = new ArrayList<>();
    
    public Produto() {
    }
    public Produto(String name, double preco, boolean favorito, Categoria categoria, List<Pedido> pedidos) {
        this.name = name;
        this.preco = preco;
        this.favorito = favorito;
        this.categoria = categoria;
        this.pedidos = pedidos;
    }
    public Produto(String name, double preco, Categoria categoria, List<Pedido> pedidos) {
        this.name = name;
        this.preco = preco;
        this.categoria = categoria;
        this.pedidos = pedidos;
    }
    public Produto(String name, double preco) {
        this.name = name;
        this.preco = preco;
    }
    public double getPreco() {
        return preco;
    }
    public void setPreco(double preco) {
        this.preco = preco;
    }
    
    public long getId_Prod() {
        return id_Prod;
    }
    public void setId_Prod(long id_Prod) {
        this.id_Prod = id_Prod;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public boolean isFavorito() {
        return favorito;
    }
    public void setFavorito(boolean favorito) {
        this.favorito = favorito;
    }
    
}
package br.org.cesar.Challenge.Entity;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
@Entity
public class Pedido {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id_Ped;
    private String prato;
    @ManyToMany(mappedBy = "produtos")
    private Set<Produto> produtos = new HashSet<>();
    
    
    public Pedido() {
    }
    public Pedido(String prato, Set<Produto> produtos) {
        this.prato = prato;
        this.produtos = produtos;
    }
    public long getId_Ped() {
        return id_Ped;
    }
    public void setId_Ped(long id_Ped) {
        this.id_Ped = id_Ped;
    }
    public String getPrato() {
        return prato;
    }
    public void setPrato(String prato) {
        this.prato = prato;
    }
    public Set<Produto> getProdutos() {
        return produtos;
    }
    public void setProdutos(Set<Produto> produtos) {
        this.produtos = produtos;
    }
    
}
package br.org.cesar.Challenge.Entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@Entity
public class PedidosProdutos {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;
    @OneToMany
    private Produto produto;
    @OneToMany
    private Pedido pedido;
    
}
package br.org.cesar.Challenge.Entity;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@Entity
public class Categoria {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id_Cat;
    private String nome;
    @OneToMany
    private List<Produto> produtos = new ArrayList<>();
    public Categoria() {
    }
    public Categoria(String nome) {
        this.nome = nome;
    }
    public long getId_Cat() {
        return id_Cat;
    }
    public void setId_Cat(long id_Cat) {
        this.id_Cat = id_Cat;
    }
    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public List<Produto> getProdutos() {
        return produtos;
    }
    public void setProdutos(List<Produto> produtos) {
        this.produtos = produtos;
    }
    
}
package br.org.cesar.Challenge.Repositorio;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import br.org.cesar.Challenge.Entity.Categoria;
@RepositoryRestResource(collectionResourceRel = "categoria", path = "categoria")
public interface CategoriaRepositorio extends PagingAndSortingRepository<Categoria, Long> {
    
}
package br.org.cesar.Challenge.Repositorio;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import br.org.cesar.Challenge.Entity.Pedido;
@RepositoryRestResource(collectionResourceRel = "pedido", path = "pedido")
public interface PedidoRepositorio extends PagingAndSortingRepository<Pedido, Long>{
}
package br.org.cesar.Challenge.Repositorio;
import java.util.List;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import br.org.cesar.Challenge.Entity.Produto;
@RepositoryRestResource(collectionResourceRel = "produto", path = "produto")
public interface ProdutoRepositorio extends PagingAndSortingRepository<Produto, Long>{
    List<Produto> findByName(@Param("name") String name);
    List<Produto> findByName(@Param("preco") double name);
}
package br.org.cesar.Challenge;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ChallengeApplication {
	public static void main(String[] args) {
		SpringApplication.run(ChallengeApplication.class, args);
	}
}