我的代码中有以下内容:
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "id", unique = true, nullable = false)
private Long id;
而且,我注意到当我拥有@GeneratedValue
时,它根本不会生成我的MySql表,但如果没有该注释,它会生成相应的表。
我应该检查的关键点是什么?
答案 0 :(得分:0)
这非常棘手,因为您可能认为已正确定义了hibernate的所有属性,并添加了@GeneratedValue注释导致SQL Gram-mer错误。然而,我能够通过更仔细地探索hibernate属性来解决这个问题。具体在hibernate配置中查找以下属性。 property name =" hibernateProperties">
hibernate.dialect=${hibernate.dialect}
hibernate.hbm2ddl.auto=create
用于hibernate.dialect - >你应该有org.hibernate.dialect.MySQL5InnoDBDialect 但你可能会看到,它还为 - >生成表格。 MySQL数据库中的org.hibernate.dialect.SQLServerDialect,它可以推断您已正确设置了hibernate属性。 如果您的任何元数据注释产生语法错误,我强烈建议您检查hibernate属性
谢谢