0

プールされたシーケンス番号ジェネレーターをメモリに実装するための良い解決策はありますか?

Hibernate/JPA にテーブル ジェネレーター ID タイプが含まれていることは知っていますが、残念ながら従来の理由により、オブジェクトが実際に保存される前に、Web サービスがこれらの ID をメモリに割り当てることができる必要があります。

これを行うための推奨されるアプローチはありますか? トランザクションのロールバックなどに関して、多くの危険なことが起こり得ると確信しています。これを処理する最善の方法を説明できるアドバイスやリソースはありますか?

4

1 に答える 1

0

それは興味深いことです。AtomicLongを使用することで解決できる可能性がありますが、トランザクションのロールバックに関する問題は解決しません。

たぶん、似たようなものをラップし、長い値のリストを保持して、最初に取得できるロールバックされたキーを保持するクラスが機能するでしょうか?

もう 1 つの問題は、アプリケーションの開始時にキーが重複しないようにするために、テーブルから最大のキー値を取得する必要があることです (私が説明したのと同様のことを行う場合)。

これが役立つかどうかはわかりませんが、開始する場所です。

于 2012-06-12T17:54:09.030 に答える