2017-09-05 8 views
1

私はエンティティのセットを持っています。 hibernate 4を使用する場合、IDカラムはIDカラムとして作成されますが、hibernate 5を使用する場合、idカラムはIDとしてマークされず、シーケンスも生成されます。Hibernate 5は、IDENTITYとしてマークされていないIDを持つテーブルを作成します。

既存のデータベースオブジェクトと一緒にhibernate 5を使用し、設定を検証すると、ID列として識別されている表があるにもかかわらず、シーケンスが存在しないとアプリケーションは失敗します。

なぜ休止状態5と4の間にこの動作の違いがありますか?

エンティティと既存のデータベースオブジェクトを変更せずに、Hibernate 5に移行することはできますか?

答えて

0

Migration Guidesに記載されているように、Hibernate 5は新しい識別子ジェネレータに切り替えました。

副次的な影響の1つは、GenerationType.AUTOの場合、既定の識別子としてIDENTITYを使用していたため、代わりにTABLE識別子が取得されるようになりました。詳細については、HHH-11014 Jiraaの問題を参照してください。

今、古い識別子ジェネレータを使用するために、あなただけのfalsehibernate.id.new_generator_mappings構成プロパティを設定することができます。

それを行う必要があります
<property 
    name="hibernate.id.new_generator_mappings" 
    value="false" 
/> 

関連する問題