【问题标题】:Spring Hibernate Cannot add foreign key constraint on initializing databaseSpring Hibernate无法在初始化数据库时添加外键约束
【发布时间】:2018-01-18 21:54:21
【问题描述】:

当 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。

提前致谢!

【问题讨论】:

  • 你的应用的ddl-auto模式是什么?
  • @Piwo 更新了

标签: mysql spring hibernate kotlin mariadb


【解决方案1】:

因此,通过一些研究,我找到了一些解决方案。 (这确实是一种解决方法)

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

顺便说一句:在配置文件中选择 MySQL57Dialect 时仍然会发生这种情况。

【讨论】:

  • 好吧,这其实是Mysql驱动的问题。选择合适的驱动包会是一个更好的解决方案。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-16
    • 2020-02-09
    • 2021-10-16
    • 2018-01-29
    • 2018-08-31
    • 2020-09-26
    相关资源
    最近更新 更多