5
respostas

Erro ao Inserir Dados via data.sql H2

Olá

Estou com o seguinte erro ao subir o projeto, alguém poderia me ajudar com esse caso?

Segue abaixo o print do meu projeto e também a configuração do arquivo appilcation.properties e data.sql

Projeto https://ibb.co/QXYVFDd

application.properties

data source

spring.datasource.driverClassName=org.h2.Driver spring.datasource.url=jdbc:h2:mem:alura-forum spring.datasource.username=sa spring.datasource.password=

jpa

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

h2

spring.h2.console.enabled=true spring.h2.console.path=/h2-console

data.sql INSERT INTO USUARIO(nome, email, senha) VALUES('Aluno', 'aluno@email.com', '123456');

INSERT INTO CURSO(nome, categoria) VALUES('Spring Boot', 'Programação'); INSERT INTO CURSO(nome, categoria) VALUES('HTML 5', 'Front-end');

INSERT INTO TOPICO(titulo, mensagem, data_criacao, status, autor_id, curso_id) VALUES('Dúvida', 'Erro ao criar projeto', '2019-05-05 18:00:00', 'NAO_RESPONDIDO', 1, 1); INSERT INTO TOPICO(titulo, mensagem, data_criacao, status, autor_id, curso_id) VALUES('Dúvida 2', 'Projeto não compila', '2019-05-05 19:00:00', 'NAO_RESPONDIDO', 1, 1); INSERT INTO TOPICO(titulo, mensagem, data_criacao, status, autor_id, curso_id) VALUES('Dúvida 3', 'Tag HTML', '2019-05-05 20:00:00', 'NAO_RESPONDIDO', 1, 2);

Erro Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2021-06-10 11:16:09.581 ERROR 1313165 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Invocation of init method failed; nested exception is org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #1 of URL [file:/home/mtuser/repo/forum/target/classes/data.sql]: INSERT INTO USUARIO(nome, email, senha) VALUES('Aluno', 'aluno@email.com', '123456'); nested exception is org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "USUARIO" not found; SQL statement: INSERT INTO USUARIO(nome, email, senha) VALUES('Aluno', 'aluno@email.com', '123456') [42102-200]

5 respostas

Opa Diego, tudo certo?

A partir da versão 2.5 do spring, você precisa adicionar uma propriedade no application.properties:

spring.jpa.defer-datasource-initialization=true

Para ele entender que deve ler o arquivo na hora de inicializar o projeto.

Segue o link da alteração.

Qualquer duvida pode mandar :)

Olá Gabriel

Obrigado pela resposta, vou efetuar a alteração.

Atenciosamente,

Diego

Opa Diego,

Caso funcione, não esqueça de me avisar e marcar como solução.

Abraço :)

Olá Gabriel Ronei, eu estava com o mesmo problema, e após inserir "spring.jpa.defer-datasource-initialization=true" no application.properties, o erro de não encontrar as tabelas no momento da execução do script foi resolvido!

Obrigado.

Opa Douglas, show de bola cara... Que bom que funcionou, fico feliz em ajudar :)