私は内部的にOracleシーケンスからnext_valを照会しているDAOクラスを持っています。このシーケンスは、任意のエンティティにバインドされていませんが、単に内部ロジックの値を照会、私はネイティブクエリに次のようにgetNextValueFromSequence()
方法はDAOで呼び出されるたびに作成していたようHibernate 5:シングルトンパターンでのcreateNativeQuery()
:
Query nextValQuery = entityManager.createNativeQuery(GET_NEXT_SEQUENCE_VAL_SQL);
メソッドが呼び出されるたびにクエリを作成しているので、これをリファクタリングして、Spring Beanとして定義されたシングルトンで作成されたネイティブクエリを作成することを考えていたので、初めてクエリが作成されるのはgetNextValueFromSequence()
です。
これには何らかの欠点がありますか? Hibernateセッションではこのアプローチに問題はありますか?
こんにちはMaciej、あなたの答えに感謝します。私はこのオプトインを知っていましたが、残念ながらこのシーケンスにバインドされているエンティティがないため、 '@ NamedNativeQuery'を使用することはできません。 –
これは問題ありません。仕様では、クエリが定義されているエンティティに関連するようにクエリが強制されません。だからあなたはまだ行くことができます –