postgres 9.3-1100-jdbc41 JDBC4 ドライバーを使用してバッチ挿入を行っています。
JDBC 仕様によると、自動コミットを無効にし、トランザクションをコミットまたはロールバックするのはアプリケーション次第です。
私の場合、トランザクションを使用していません (つまり、自動コミットが true です) が、バッチ内の挿入の 1 つが失敗すると、挿入はロールバックされます。
JDBC 仕様によると、「バッチ更新のコマンドの 1 つが正しく実行されなかった場合、このメソッドは BatchUpdateException をスローし、JDBC ドライバーはバッチ内の残りのコマンドの処理を続行する場合としない場合があります。」ここでは、以前に実行されたコマンドがロールバックされるとは言いません。
私の理解は間違っていますか?そうでない場合、ドライバーがこのように動作している理由と、そうである場合、仕様に従った正しい動作は何ですか。