Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

org.hibernate.exception.SQLGrammarException: could not prepare statement

Estou com esse problema ao tentar fazer apenas o POST na minha aplicação.

{ "timestamp": "2023-04-24T16:35:32.313964355", "status": 500, "error": "INTERNAL_SERVER_ERROR", "message": "could not prepare statement; SQL [select c1_0.id,c1_0.categoria,c1_0.nome_do_curso from curso c1_0 where c1_0.id=?]", "path": "/topicos" }

Hibernate: select c1_0.id, c1_0.categoria, c1_0.nome_do_curso from curso c1_0 where c1_0.id=? 2023-04-24T16:35:32.306-03:00 WARN 375720 --- [nio-8080-exec-3] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 42122, SQLState: 42S22 2023-04-24T16:35:32.306-03:00 ERROR 375720 --- [nio-8080-exec-3] o.h.engine.jdbc.spi.SqlExceptionHelper : Column "C1_0.NOME_DO_CURSO" not found; SQL statement: select c1_0.id,c1_0.categoria,c1_0.nome_do_curso from curso c1_0 where c1_0.id=? [42122-214] 2023-04-24T16:35:32.306-03:00 INFO 375720 --- [nio-8080-exec-3] o.h.e.internal.DefaultLoadEventListener : HHH000327: Error performing load command

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas

Oi Jadson!

Na exception está dizendo a causa: Column "C1_0.NOME_DO_CURSO" not found

Verifica como está o nome da coluna na tabela curso e do atributo na entidade.

Vou postar aqui por que estava com esse erro mas consegui resolver. Mas foram vários pequenos problemas até chegar na solução. Segue a lista dos erros que encontrei e como resolvi. 1-As tabelas não foram criadas 2-Atributo solucao da tabela resposta ser int(1) no arquivo migration da resposta 3- Nome do atributo data_criacao estar dataCriacao na tabela Topico do migration

Solução: 1- Encontrei essa mensagem no debug: Erro no migrationCom isso criei duas pastas db e migration e coloquei os arquivos sql dentro delas. E adicionei o caminho "spring.flyway.locations: db" no yml(pelo que li em outras respostas ,pode ter variação. Para saber se esta etapa deu certo, verifica se foi adicionado os arquivos, no caso acima seriam 4 scripts.

2-Removi o (1) do int, como sugeriram em outraresposta. Segue imagem do erro: Insira aqui a descrição dessa imagem para ajudar na acessibilidadeRemovendo o (1) do atributo solução do arquivo que cria tabela do topico resolve o problema.

3-não encontrava o atributo da tabela topico. Após alguns testes percebi que quando o JPA cria o select, se o atributo do Model esta no formato camel case ex:"dataCriacao" o select é procura o atributo "data_criacao" no banco, caso tenha criado a coluna no banco com nome "DataCriacao" nao vai encontrar.

Espero conseguir ajudar alguém que passar por problemas com o erro acima, como eu passei.

solução!

Muito obriga pessoal! Deu certo, consegui resolver!