0

java springフレームワークを使用してデータベースにデータを入力する際の既存の値のエラーメッセージのコードは何ですか?

私はこのコードを試しました..

public class SkipCheckingListener extends StepExecutionListenerSupport {    
    public ExitStatus afterStep(StepExecution stepExecution) {
        String exitCode = stepExecution.getExitStatus().getExitCode();
        if (!exitCode.equals(ExitStatus.FAILED.getExitCode()) && 
              stepExecution.getSkipCount() > 0) {
            return new ExitStatus("COMPLETED WITH SKIPS");
        }
        else {
            return null;
        }
    }
4

1 に答える 1

0

あなたの質問について:ExitStatusは、ジョブ xml 定義でジョブ フローを制御するために使用される単なる文字列でありExitStatus、重複データ用に事前定義されたものはありません。

spring-batch (コードは spring のこのモジュールからのもの) では、複製されたデータはビジネス上の問題であるため、カスタム例外 (DuplicatedOrderExceptionたとえば、またはDataAccessException子孫) を使用no-rollback-exception-classesして管理し、タスクレット タグまたはskippable-exception-classesチャンクで使用する必要があります。必要に応じてスキップ要素を追加しSkipListenerて管理します(おそらくステップ変数を設定します)。
以前StepExecutionListener.afterStepの変数を確認して、カスタム エラー メッセージを返すことができます。

于 2013-08-05T06:03:27.280 に答える