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

Error no data.sql

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2022-02-17 14:54:16.836 ERROR 10692 --- [ 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 #3 of URL [file:/D:/Documents/GitHub/forum/target/classes/data.sql]: INSERT INTO PERFIL(id, nome) VALUES(1, 'ROLE_ALUNO'); nested exception is org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Unique index or primary key violation: "PRIMARY KEY ON PUBLIC.PERFIL(ID) [1, 'ROLE_ALUNO']"; SQL statement: INSERT INTO PERFIL(id, nome) VALUES(1, 'ROLE_ALUNO') [23505-200]

e continua esse erro em todas as colunas..

2 respostas
solução!

COnsegui resolver esse erro. O problema no data.sql era que estava setando o id do perfil direto na query, mas pelo que entendi, quebra a regra do jpa de gerar um id. então removi no INSERT o id e deixei somente o nome. Deu certo!

INSERT INTO PERFIL(nome) VALUES('ROLE_ALUNO');
INSERT INTO PERFIL(nome) VALUES('ROLE_MODERADOR');

Oi Dorian,

O banco provavelmente está como chave primárias auto increment. Isso significa que a chave será gerada automaticamente e se passar por parâmetro vai dar erro. Se quiser criar uma nova lógica de combinação de chave precisa retirar o auto_increment do banco.

Se isso te ajudou a evoluir, marca como resolvida para que mais pessoas possam ver esta solução.