Javers - ограничение внешнего ключа терпит неудачу с mysql - PullRequest
0 голосов
/ 19 июня 2019

Я новичок в ткачах.Запустил POC для моего приложения, но получил SQL_EXCEPTION при фиксации, из-за функции mysql 'last_insert_id ()' возвращает '0'.

Что я сделал:

  • Добавлено началось веснойboot maven (javers core & javers mysql)
  • Создано соединение с моей схемой базы данных
  • Получил все таблицы в мае дБ (jv_global_id, jv_commit и т.д ..)

Проблема:

Я использую Spring Boot 2.0 с MySQL версии 5.7 Я отладил проблему в глубине и обнаружил, что когда Javers код 'org.javers.repository.sql.session.Session.java'Метод 'executeInsertAndGetSequence', строка № 40, пытается найти первичный ключ, который он возвращает как ноль '0'.Согласно коду, MySQL диалект не поддерживает последовательности, поэтому он генерирует значение из keyGenerator, используя функцию mysql 'last_insert_id ()', в конце концов он возвращает ноль.

Я получил следующую ошибку:

SQL_EXCEPTION: Cannot add or update a child row: a foreign key constraint fails (`jv_snapshot`, CONSTRAINT `jv_snapshot_commit_fk` FOREIGN KEY (`commit_fk`) REFERENCES `jv_commit` (`commit_pk`))\nwhile executing sql: INSERT INTO thinkhr_portal.jv_snapshot ( type, global_id_fk, commit_fk, version, state, changed_properties, managed_type ) VALUES  ( ?,?,?,?,?,?,? )

Интересно, если javers не поддерживает mysql версии 5.7 или есть что-то еще, что мне нужно позаботиться в конфигурации javers.

...