使用MySQL,为什么Hibernate / JPA不为我创建外键约束?

在这里记录此信息是因为我只花了一个小时试图解决这个问题。

我有一个实体Foo,拥有:

@ManyToOne(optional = false)

@JoinColumn(name = "barId")

private Bar bar;

Hibernate为什么不在foo.bar-> bar.id上创建外键约束?

回答:

这是因为MySQL在使用ENGINE = MyISAM创建的表上不支持外键约束。您需要使用ENGINE =

InnoDB创建(均为!)表。您可以通过调整my.cnf,添加默认值或在JDBC URL中使用特殊变量来执行此操作:

jdbc:mysql://localhost/dbname?characterEncoding=utf8&sessionVariables=storage_engine=InnoDB

以上是 使用MySQL,为什么Hibernate / JPA不为我创建外键约束? 的全部内容, 来源链接: utcz.com/qa/398092.html

回到顶部