私はHibernateとOracleを使用しています。私は、オブジェクトを保存し、そのIDを取得します。このIDは、シーケンスを使用するトリガーによって生成されます。 (トリガーを使用する必要があります。)IDを取得するには現在2つの方法があります。1)ID列の最大値を見つける。 2)シーケンスの現在の値を見つける。どちらの方法も同じ問題を抱えています。つまり、このオブジェクトを保存してからIDを取得するまでに別の挿入が発生する可能性があります。 どうしてこのような間違った挿入を避けることができますか?Hibernateオブジェクトを保存した後に正しいIDを取得するには?
さらに、これらの2つのイベントは、IDを取得した後に終了しないトランザクションで発生します。言い換えれば、その後に起こることが起こります。したがって、テーブルをロックすると、トランザクションが終了するまでロックは解除されません。これは受け入れられません。