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

data.sql não está populando o H2

Aparentemente, o meu banco está sendo criado normal, porém não parece nenhum dado criado dentro do H2. Estou fazendo uma API um pouco diferente da aula pra já me adiantar no que eu preciso aqui. Eu sei que o arquivo data.sql está sendo lido porque quando eu não preencho um campo existente da classe ele dá erro dizendo que o campo não pode ser nulo. Tipo se eu não coloco nada no nome_aluno, dá um erro dizendo que nome_aluno não pode ser null.

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

Meu arquivo data.sql está localizado no resources: Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeAs classes estão da seguinte maneira: Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade

7 respostas

Oi Renan,

Posta aqui o seu arquivo application.properties

Fala Rodrigo,

Segue abaixo:

# datasource
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:~/maricatelecom
spring.datasource.username=sa
spring.datasource.password=

# jpa
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update

# Nova propriedade a partir da versao 2.5 do Spring Boot:
spring.jpa.defer-datasource-initialization=true

# h2
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
solução!

Ta certinho.

Mas notei que seus inserts estão com colunas que não batem com os atributos das entidades.

Ajuste os inserts de aluno para ter apenas as counas nome_aluno, serie e mensagem, e os inserts de escola para ter apenas a coluna nome_escola.

Sem problema então Rodrigo, Acabei dando um jeito. Se der problema mais pra frente eu volto pra rever isso.

Desculpa, os inserts acabaram ficando misturados ali na minha pergunta mesmo. Porque primeiro eu tentei com a entidade escola fazendo associação com a entidade aluno. Depois, eu tentei sem as associações pra ver se podia ser o erro poderia estar nessa associação. Dai eu acabei misturando os prints antigo dos inserts com as novas entidades na hora de perguntar.

Hoje, eu ajustei os inserts. E a solução foi jogar eles direto pelo h2-console. Eu já deixo os comandos de inserção salvos no data.sql e quando precisar eu só copio e jogo no h2-console. Pois as tabelas estão sendo criadas normalmente.

Segue o git do código pra se alguém souber identificar o problema: https://github.com/engRenanTorres/apiMT

Oi Renan,

Precisa agora dessa propriedade para o data.sql ser executado:

spring.sql.init.mode=always

Funcionou com esse comando. Obrigado novamente!