私は、Spring MVCとMySQLデータベースを使用して、MyEclipseでScaffoldingを使用してWebアプリケーションプロジェクトを生成します。問題を解決するための手がかりを教えてください。Spring @GeneratedValueアノテーションが自動インクリメントフィールドで機能しない
idプライマリキーに問題が発生します。 @GeneratedValue(戦略= GenerationType.IDENTITYを) @GeneratedValue(戦略= GenerationType.AUTO) @GeneratedValue(戦略= GenerationType.SEQUENCE) @GeneratedValue(戦略= GenerationType:それは私が使用している場合ではない自動インクリメントイベントを行います。 TABLE)
私は主キーがAUTO_INCREMENTに設定されたいくつかのテーブルを持っています。この例のように:
CREATE TABLE IF NOT EXISTS `ehealthdb`.`timestamp` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '',
`login_date` DATETIME NULL COMMENT '',
`logout_date` DATETIME NULL COMMENT '',
`create_date` DATETIME NOT NULL COMMENT '',
`update_date` DATETIME NULL COMMENT '',
`isActive` TINYINT(1) NULL COMMENT '',
PRIMARY KEY (`id`) COMMENT '')
ENGINE = InnoDB;
私が使用しようとすると生成されたポストのURLを使用して保存し、次のようなJSONペイロード:
{
"loginDate":"1374839856000",
"logoutDate":"1374839856000",
"createDate":"1374839856000",
"updateDate":"1374839856000",
"isActive":true
}
要求処理が失敗しました。ネストされた例外はjavax.persistence.PersistenceExceptionです: org.hibernate.id.IdentifierGenerationException:このクラス のIDを手動で()のセーブを呼び出す前に割り当てる必要があります。ehealth.domain.Timestamp
私はこれがあると思います@GeneratedValueが足りないために、主なキーで足場が作成されていません。私は手動で以下のように追加しなければならなかった:
しかし、それはまだ動作しません。それでもエラーになります。
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY) //add this
@Column(name = "id", unique = true, nullable = false)
@Basic(fetch = FetchType.EAGER)
@XmlElement
Integer id;
@Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id")?? –
はい、動作しません。 でも試してみてください: @GeneratedValue(strategy = GenerationType。 –
私はこれを(作成されたテーブル、足場が作成され、@GeneratedValueアノテーションが追加された)ステップを使用して試してみましたが問題はありませんでした。 ID値を使わずに行を手動で(SQL文でコミットして)追加し、それが機能することを確認できますか? –