Spring Hibernate无法在初始化数据库时添加外键约束

时间:2018-01-18 21:54:21

标签: mysql spring hibernate kotlin mariadb

当Spring初始化时,我得到以下异常: https://pastebin.com/abMuS4v3

这是发生异常的kotlin代码,它是实体构造函数的一部分:

    @ElementCollection(fetch = FetchType.EAGER)
    @CollectionTable(joinColumns = [(JoinColumn(name = "id"))])
    @Column(name = "authenticated_factor")
    val authenticatedFactors: MutableSet<CredentialType> = hashSetOf(),

CredentialType是一个枚举类。

有趣的是,这种异常发生在MySQL上,而不是发生在MariaDB上。

提前致谢!

2 个答案:

答案 0 :(得分:0)

因此,通过一些研究,我得出了一些解决方案。 (这真的是一种解决方法)

如果您使用ddl-auto模式createnonevalidatecreate-drop,它实际上会有效。我知道它有不同的效果。但无论如何它现在都有效。我认为这与MySQL如何处理更新约束有关。

BTW:在配置文件中选择了MySQL57Dialect时仍然会发生这种情况。

答案 1 :(得分:0)

我有同样的问题。我通过将休眠方言从MySQL5Dialect切换到MySQL5InnoDBDialect来修复它。 希望对您有所帮助。