2016-05-11 10 views
0

私は巧みで、ExecutorCompletionServiceを使用してPostgresデータベースに多数のレコードを挿入するタスクを並列化していると思っていました。モチーフは素晴らしい作品で、パフォーマンスが向上しています。しかし、今では主キーの例外で失敗します。同時スレッドが同時にレコードを作成しようとしている可能性が高いためです。この状況に対応するための優雅な方法はありますか?Java ExecutorCompletionServiceとPostgresをMyBatis経由で挿入する

答えて

0

主キーを生成するには、コーディネートされたスレッドセーフな方法を使用する必要があります。主キーが数値の場合の最良の選択肢は、ユーザーデータベースの順序です。安全で効率的です。

0

私の元々の問題は、シーケンスがテーブルのレコード数と異なることがわかりました。実際、Postgresは私が知る限り、同時に新しい一意のIDを作成することができます。追加のコーディングを行う必要はありません。

関連する問題