使用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