オブジェクトがSession.saveOrUpdate()
に渡されるため、データベースで生成された値を除いて、Hibernateが更新されたインスタンスを返す必要はないことは明らかです。 は 更新されたインスタンス。データベースで生成された値(シーケンス、トリガー、デフォルトなど)は後に設定されます Session.saveOrUpdate
それに応じて注釈が付けられている(またはXMLマッピングファイルで定義されている)場合。
識別子の値
JPA @javax.persistence.GeneratedValue
を使用します JPA @javax.persistence.Id
と組み合わせたアノテーション 注釈。 単純なプロパティ ネイティブのHibernate@org.hibernate.annotations.Generated
を使用します 注釈(afaikによるJPA注釈はありません)。
生成された識別子値がHibernateによってどのように取得されるかは、生成戦略やデータベースダイアレクトによって異なります。単純なプロパティの場合、Hibernateは追加のSELECT
を実行します INSERT
の後のidステートメントによる またはUPDATE
。