Дублирующая запись '' для ключевой ошибки в приложении Spring - PullRequest
0 голосов
/ 16 марта 2020

Я долго боролся с этой ошибкой и не знаю, в чем проблема.

Я выполняю тестирование для приложения Spring, и когда я запускаю тесты, я получаю ошибку при выполнении сценария sql.
Как будто во время вставки пользователя был дубликат моего уникального имени пользователя, но я поставил a в application-test.properties create-drop.

У меня есть application.prperties в моем приложении, и приложение работает нормально, только когда начинается тестирование, я получаю эту ошибку.

Я не очень понять, насколько дубликат может быть, если для ddl задано значение -drop. Также, когда я пытаюсь вручную отбросить схему, возникает такая же ошибка.

Я также хотел бы спросить, могут ли application.properties и application-test.properties (которые используются для тестирования) вызывать проблемы друг друга, потому что что-то как это случилось со мной?

Я опубликую как можно больше информации, чтобы помочь выяснить, в чем ошибка.

Я действительно не знаю, в чем ошибка, если кто-то может помочь, я был бы благодарен. Спасибо!

Мои application-test.prperties:

spring.datasource.url = jdbc:mysql://localhost:3306/kts_test?useSSL=false&useUnicode=true&characterEncoding=utf8&createDatabaseIfNotExist=true
spring.datasource.username = root
spring.datasource.password = root
spring.jpa.show-sql = true
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto = create-drop
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.datasource.data = classpath:import.sql

Просто часть моего импорта. sql:

use kts_test;


-- Test data for roles
insert into role (role_name) values ('USER');
insert into role(role_name) values ('ADMIN');

-- test data for users.
insert into user(active, confirmation_token, email, first_name, last_name, matching_password, password, username, role_id) values (true , 'tokenexamplefortest', 'test1@gmail.com', 'TestName', 'TestLastName', '$2y$12$bGfo7MFUk1LjWhD9z./97.ZIqiyR/wvJFItU3CkJoAK0qm44tqJHa', '$2y$12$bGfo7MFUk1LjWhD9z./97.ZIqiyR/wvJFItU3CkJoAK0qm44tqJHa', 'testUser', 1); -- password: test123
insert into user(active, confirmation_token, email, first_name, last_name, matching_password, password, username, role_id) values (true , 'tokenexampleforadmin', 'test_admin@gmail.com', 'TestAdmin', 'TestAdminLastName', '$2y$12$0aGkmk3OXPVatmHqicCns.tKNCpcQx3LQs3DxiGoost.ZEu7Yg28K', '$2y$12$0aGkmk3OXPVatmHqicCns.tKNCpcQx3LQs3DxiGoost.ZEu7Yg28K', 'testAdmin', 2);

-- Test data for address
insert into address(city, latitude, longitude, number, state, street) values ('Beograd', 22.3323, 0.3233, '1a', 'Srbija', 'Ljutice Bogdana');

insert into address(city, latitude, longitude, number, state, street) values ('Novi Sad', 21.3323, 12.3233, '2', 'Srbija', 'Sutjeska');

describe of table user

И несколько картинок моей ошибки с консоли:

Caused by: org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #4 of class path resource [import.sql]: insert into user(active, confirmation_token, email, first_name, last_name, matching_password, password, username, role_id) values (true , 'tokenexamplefortest', 'test1@gmail.com', 'TestName', 'TestLastName', '$2y$12$bGfo7MFUk1LjWhD9z./97.ZIqiyR/wvJFItU3CkJoAK0qm44tqJHa', '$2y$12$bGfo7MFUk1LjWhD9z./97.ZIqiyR/wvJFItU3CkJoAK0qm44tqJHa', 'testUser', 1); nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'testUser' for key 'UK_sb8bbouer5wak8vyiiy4pf2bx'

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...