我是javers的新手。为我的应用程序启动了 POC,但由于 mysql 的“last_insert_id()”函数返回“0”而在提交时获取 SQL_EXCEPTION。
我做了什么:
- 在 spring boot maven (javers core & javers mysql) 中添加了started
- 与我的数据库架构创建了连接
- 得到了 May db 中的所有表(jv_global_id、jv_commit 等)
问题:
我正在使用带有 mysql 版本 5.7 的 spring boot 2.0 我深入调试了问题,发现当 Javers 代码 'org.javers.repository.sql.session.Session.java' 方法 'executeInsertAndGetSequence' 第 40 行时,试图找到主键它返回为零'0'。根据代码,mysql 方言不支持序列,因此它使用 mysql 函数“last_insert_id()”从 keyGenerator 生成一个值,最终它返回零。
我收到以下错误:
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 配置中还有其他需要注意的地方。