2017-04-05 64 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'或將其刪除。 –