一意の値を取得するには、シーケンスを使用する必要があります。本番コードはpostgresを使用していますが、HSQLDBでこれをテストできるように、Hibernate経由でアクセスしたいと思います。
Hibernateでシーケンスを作成して読み取るにはどうすればよいですか?
一意の値を取得するには、シーケンスを使用する必要があります。本番コードはpostgresを使用していますが、HSQLDBでこれをテストできるように、Hibernate経由でアクセスしたいと思います。
Hibernateでシーケンスを作成して読み取るにはどうすればよいですか?
Dialect
(https://github.com/hibernate/hibernate-orm/blob/5.0/hibernate-core/src/main/java/org/hibernate/dialect/Dialect.java )をご覧ください。
これには、データベースがシーケンス()をサポートしているかどうかを判断するコードと、シーケンスsupportsSequences()
を作成および削除するメソッド('getCreateSequenceString(String sequenceName)')が含まれています。
残念ながら、セッションから方言を取得するためのクリーンな方法はありません。実行時にHibernate方言を取得する方法を参照してください
[古い答え]
からコードを再利用することもできますHibernateDialect
が、メインAPIはこれを提供していません。最善の策は、おそらくこれをインターフェイスでラップしてから、方言に応じて異なる実装を使用することです。