不成功:alter table add constraint:创建时不存在表

时间:2015-12-22 05:58:30

标签: java mysql hibernate jpa

我对OneToMany有一些奇怪的行为:

ENTITY1:

@OneToMany(fetch = FetchType.LAZY, mappedBy = "entity1")
private Set<Deal> deals;

交易:

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "entity1_id")
private Entity1 entity1;

我也有:

properties.setProperty("hibernate.hbm2ddl.auto", "create");

启动时出现以下错误:

ERROR: org.hibernate.tool.hbm2ddl.SchemaExport - HHH000389: Unsuccessful: alter table deal add constraint FK_d17qqf8ra0ibdsnngbp465qvs foreign key (entity1_id) references entity1 (entity1_id)
ERROR: org.hibernate.tool.hbm2ddl.SchemaExport - Table 'test.deal' doesn't exist

我尝试从db中删除所有表,所有表都是成功创建的(我在其他实体中有这种类型的关系,这些表也是创建的)除了这一个。我究竟做错了什么?感谢。

1 个答案:

答案 0 :(得分:2)

最后我发现了问题所在。 为了命名我的字段,我使用了MySQL关键词:to,from,show。 因此,Hibernate生成的SQL创建请求对于MySQL来说是完全的乱码,唯一的标志是来自服务器的消息,语法错误。 我通过逐个删除字段并逐步重新启动来找到它。