この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:1
ページ更新者:T
更新日時:2018-04-06 08:42:44

タイトル: ids for this class must be manually assigned before calling save()
SEOタイトル: Hibernate ids must be manually assigned エラー対処

この記事の要点
  • Hibernate の IdentifierGenerationException: ids for this class must be manually assigned
  • 原因: マッピングで主キーを自動採番せず手動代入にしているのに、Bean に ID を入れずに save() 呼び出し
  • 対処1: Bean に 明示的に ID を代入してから save
  • 対処2: マッピングで 等の自動採番に切り替える

 

エラー内容

net.sf.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save()

 

発生条件と原因

HibernateのマッピングファイルのidがDB側でいうところのPKにも関わらず、beanで値を代入していない場合に起きるエラー。

 

 

対処法

beanに値を入れれば解決するが、DB側でautoincrementを設定している場合は、idタグ内に<generator class="native" />を指定すればよい