Oracle と PostgreSQL の両方をサポートする必要があるという要件があります。私は次の休止状態のマッピングを持っています -
<id name="id" type="java.lang.Integer">
<column name="id" not-null="true" />
<generator class="native">
<param name="sequence">`OneTimeAccessToken_id_seq`</param>
</generator>
</id>
<property name="resource" type="java.lang.String">
<column name="`res`" not-null="true" />
</property>
<property name="expires" type="long">
<column name="`expires`" not-null="true" />
</property>
ただし、バッククォートがあるため、これは Oracle では機能しません。逆引用符を削除すると、PostgreSQL で失敗します。両方のデータベースのサポートを提供する方法に関する情報。
私はorg.hibernate.dialect.Oracle10gDialect
Oracle 11.2バージョンに対して使用していますが、そうですか?
私の問題は、バックティックであり、データベース間でシーケンスの互換性を持たないことです。私はすでにそれを達成しています。hbm ファイルでバッククォートを使用して、指定した文字の大文字と小文字に従って PostgreSQL にテーブル/列を作成させました。これらのバッククォートを削除すると、PostgreSQL はすべてを小文字に変換します。バッククォートを設定すると、すべてが PostgreSQL で正常に動作しますが、Oracleではテーブルまたはビューが見つからないという問題が発生します: "OneTimeAccessToken"。テーブル/列名のケースを維持するというこの問題をどのように解決し、Oracleに対しても機能させるかを特定しようとしています。