2017-04-05 75 views
1

我有一些麻烦,创建使用Hibernate但下列情况除外表:不正确的列说明列“ID”

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:列不正确的列说明“ id'

无法对JDBC目标执行模式管理[创建表服务(id varchar(255)不为null auto_increment,adult_cost双精度不为null,child_cost双精度不为null,partner_id varchar(255)非null,主键(id))ENGINE = InnoDB]

我的ID列代码如下:

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
private int id; 

据我了解,此异常通常,当您尝试分配一个auto_increment一个非数字出现,但你可以看到 - 我定义的id为int。

任何帮助表示赞赏。

+0

我刚刚通过将Long id更改为int id来测试其中一个代码,并且它工作得很好,因此我认为您必须检查数据库中id列的类型,它可能与您期望的不同。 – vvs

回答

0

使用GenerationType.IDENTITY而不是GenerationType.AUTO。 Mysql不使用表来生成id值。

+0

是的。使用'GenerationType.IDENTITY'或将其删除。 –