hibernate では、sequence
挿入の生成戦略として使用される場合、最初にシーケンスから次の値を DB に照会し、エンティティに設定します。その後、このエンティティは db に永続化されます。つまり、2 つのクエリが実行されます。
フロー:
- Hibernate はシーケンスの次の値を取得します
- Hibernate は取得した値をエンティティの ID として設定します
- Hibernate はエンティティを保持し、その ID はクエリで設定されます
クエリ:
select
CUSTOM_SEQUENCE.nextval
from
dual
次に、この値が挿入ステートメントで使用されます。
質問:
とにかく、INSERT INTO foobar
(foo_id, foo)
VALUES (FOOBAR_SEQUENCE.nextval, 'bar');
休止状態のようなクエリを生成できますか?