Unknown column 'atributo_x' in 'field list' (Spring Boot)

Ok, já tem uma pergunta semelhante a essa aqui, porém a pessoa não mostrou como resolver o problema; Também já entendi que significa "coluna ‘atributo_x’

Desconhecida na lista de campos" (óbvio), porém, não sei como “criar” esse campo lá no BD, use a seguinte anotação na classe do objeto que estou tentando salvar:

@Column(name = "atributo_x")
public Integer getAtributoX() {
	return atributoX;
}

Tem um outro campo que também tem a mesma anotação e foi criado sem problemas. Perdoem, mas sou bem iniciante e está difícil entender como o Java “cria” então esse campo da classe no BD.

O Java não cria nada, quem faz esse papel são os frameworks de persistência de dados, como por exemplo o hibernate, quando o atributo declarado na classe possui a mesma nomenclatura que a coluna no banco de dados ele faz essa relação automaticamente, porém quando o nome atribuído ao atributo difere da coluna no banco existe a anotação @Column para informar ao framework que o atributo X faz relação a coluna X.
O fato do framework realizar o processo de engenharia reversa gerando a tabela a partir da sua classe entidade, basta ativar a propriedade de auto_update para true, essa configuração no spring boot geralmente fica no arquivo.properties.

1 curtida

Olá amigo, obrigado pela resposta rápida. Sabe onde encontro esse arquivo? O nome é esse mesmo? Ou depende da aplicação? Agradeço.

kkk… coisa de princiante…o Java, o Eclipse, o Hibernate, etc; alguém cria…kkk

Ele geralmente fica dentro de resources que é o caminho default de uma aplicação spring boot, o nome do arquivo é application.properties.
A propriedade de configuração é algo mais ou menos assim:

spring.jpa.hibernate.ddl-auto=update

1 curtida

Não consegui achar, até usando a pesquisa do Eclipse :disappointed_relieved:

O problema mesmo é que estou colocando um novo atributo, e no caso, deveria ser criado e atualizado no BD como uma coluna (em tese, certo?). Já copiei o nome do atributo exatamente como ele aparece na classe (ctrl v , crtl c) e mesmo assim dá esse erro… :sob:

Está seguindo algum tutorial ou algo assim?

1 curtida

Não…pq? É no trabalho mesmo…

Por curiosidade, é que o spring boot por si só ele segue o padrão definido por convenções para tudo, porém ele é maleável a customizações de diferentes formas, porquê sendo assim pode ser que haja alguma outra configuração a ser realizada no caso desse seu projeto.
Por isso perguntei se era algum tutorial de curso pu algo do tipo.

1 curtida

Ah entendi… na verdade, foi me pedido para construir uma tela que persistisse os dados no BD… porém algum desses parâmetros ainda não existiam na classe nem na tabela, e um deles é esse que eu criei e não está persistindo. Bom, mas acho que pra ajudar mesmo nesse caso, só se estivesse aqui ao lado para olhar todo o projeto. Mas obrigado mesmo assim