最近、Hibernate 3.6.4 から Hibernate 5.0.0 Final に切り替えました。この方法で注釈が付けられた ID を持つエンティティがあります。
@Id
@GeneratedValue(generator="SEQ_MENUITEM")
@SequenceGenerator(name="SEQ_MENUITEM",sequenceName="SEQ_MENUITEM", allocationSize=1)
@Column(name = "ID_MENUITEM")
private int id;
休止状態の構成は次のいずれかです。
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
また
<property name="hibernate.dialect">org.hibernate.dialect.SQLServer2008Dialect</property>
本番環境に基づいて、ソフトウェアは Oracle または Sql Server 2008 のいずれかに移植可能である必要があります。
Hibernate 3.6.4 を使用すると、SQLServer2008Dialect を指定すると、自動的にシーケンスからアイデンティティ (オートインクリメント) に切り替わるため、正常に動作します。
Hibernate 5 を使用すると、次のエラーが発生します。
com.microsoft.sqlserver.jdbc.SQLServerException: 無効なオブジェクト名 'SEQ_MENUITEM'。
彼はアイデンティティに切り替えるのではなく、シーケンスを探しています。私の開発環境は (シーケンスをサポートする) Sql Server 2014 ですが、それでも私のダイアレクトは 2008 であり、実稼働環境は 2008 になります。
何か案が?3.6.4 から 5 への変更はありますか? 情報やその他のxml構成が見つかりません(もちろん、OracleからSQLサーバーに切り替えるときに、すべてのエンティティのすべての注釈を変更する必要はありません)。
ありがとうございました。