1
resposta

Spring Boot e Hibernate - problema para subir a aplicação

Pessoal, o lance é o seguinte, criei uma página simples usando Spring Boot, Thymeleaf, Hibernate e MySql para cadastro de estacionamentos e veículos, com finalidade de praticar o que vi nas aulas, mas ainda estou muito perdido em relação ao mapeamento das entidades e configurações que devo fazer e etc. A parte de cadastro de estacionamentos funcionou perfeitamente, mas estou tendo problemas para implementar a parte de cadastro de veículos, dentro dos estacionamentos. Não sei se devo ter os atributos da classe iguais as colunas que tenho no banco e não sei como resolver a questão das chaves estrangeiras no meu banco e as devidas anotações nas classes. Eu criei as seguintes tabelas para o sistema direto no banco de dados.

E as minhas classes do modelo estão assim

Estou tendo a seguinte mensagem de erro ao tentar subir a classe main: https://gist.github.com/gabrielrlj/dc77c9bf61573ac69579759a2d4c0ffe

1 resposta

Olá Gabriel, tudo bem? Peço desculpas pelo demora no retorno! O problema provalvemente é a anotações que não estão nos lugares corretos, veja bem a anotação deve está sobre o campo, ou atribuito da classe, então deveria ficar da seguinte forma:

  • Empresa:

    @Entity
    public class Empresa {
    
      @Id
      @GeneratedValue(strategy = GenerationType.IDENTITY)
      private Long id_empresa;
      private String nome;
      private String cnpj;
      private String endereco;
      private String telefone;
      private int qtd_carros;
      private int qtd_motos;
    
      @OneToMany(targetEntity=Veiculo.class, mappedBy="empresa")
      private List<Veiculo> veiculos;
    
      public Empresa() {
      }
    
      public List<Veiculo> getVeiculos() {
          return veiculos;
      }
  • Veículos:

    @Entity
    public class Veiculo {
    
      @Id
      @GeneratedValue(strategy = GenerationType.IDENTITY)
      private Long id_veiculo;
      private String marca;
      private String modelo;
      private String cor;
      private String placa;
      private TipoVeiculo tipo;
    
      @ManyToOne
      @JoinColumn(name="id_empresa")
      private Empresa empresa;
    
      public Veiculo() {
      }
    
      public Empresa getEmpresa() {
          return empresa;
      }

Penso que isso deve resolver o problema, tenta essa solução e fala pra gente o resultado!