キャメルのプロセッサに複数のjpaエンティティを処理する方法

ImranRazaKhan

テーブルから複数の行を取得していて、プロセッサにそれらを処理させたいのですが、ラクダがすべての行に対してプロセッサを呼び出しているのを観察しました。エンティティのリストを渡したいです。

以下は私のコードです

from("jpa:com.pns.ab.model.LoanRequest?consumeDelete=false"
            + "&consumer.delay=20000"
            + "&consumer.namedQuery=selectLoanRequests"
            + "&persistenceUnit=LoanServicePU").process(new JpaProcessor());

プロセッサで

LoanRequest lr = exchange.getIn().getBody(LoanRequest.class);

しかし、私はのようなオプションが欲しい

List<LoanRequest> requests  = exchange....

よろしく、

ピーターケラー

アグリゲーターを使用する:

private static class JpaAggregationRouteBuilder extends RouteBuilder {
    @Override
    public void configure() {
        from("jpa:com.pns.ab.model.LoanRequest?consumeDelete=false"
             + "&consumer.delay=20000"
             + "&consumer.namedQuery=selectLoanRequests"
             + "&persistenceUnit=LoanServicePU")
                .aggregate(constant(true), new ArrayListAggregationStrategy())
                .completionFromBatchConsumer()
                .process(new JpaProcessor());
    }
}

// Simply combines Exchange body values into an ArrayList<Object>
// Taken from http://camel.apache.org/aggregator2
private static class ArrayListAggregationStrategy implements AggregationStrategy {

    @SuppressWarnings("unchecked")
    @Override
    public Exchange aggregate(final Exchange oldExchange, final Exchange newExchange) {
        final Object newBody = newExchange.getIn().getBody();
        ArrayList<Object> list = null;
        if (oldExchange == null) {
            list = new ArrayList<Object>();
            if (newBody != null) {
                list.add(newBody);
            }
            newExchange.getIn().setBody(list);
            return newExchange;
        } else {
            list = oldExchange.getIn().getBody(ArrayList.class);
            if (newBody != null) {
                list.add(newBody);
            }
            return oldExchange;
        }
    }

}

アグリゲーターの詳細については、CamelのWebページを参照してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Spring JPA永続エンティティマネージャーを使用する場合、ロールスワップを処理する方法は?

分類Dev

セマンティックUI:複数選択ドロップダウンでラベルの追加をキャンセルする方法

分類Dev

JPA基準:ルートを複数のエンティティサブクラスにダウンキャストし、同じリンクエンティティのナチュラルIDでフィルタリングする

分類Dev

webappとandroidアプリでSpringMVCバックエンドのセキュリティを処理する方法は?

分類Dev

EntityFrameworkを使用してデータベース内のエンティティのハッシュテーブルプロパティを処理する方法

分類Dev

複数のアセットをエンティティにアップロードする

分類Dev

DTOを複数のエンティティにマップする方法は?

分類Dev

elmアーキテクチャで複数のサブスクリプションを処理する方法

分類Dev

同じHibernateエンティティを異なるスキームの複数のテーブルにマップする方法はありますか?

分類Dev

Androidで同じエンティティIDの複数の画像をキャッシュする方法

分類Dev

ソケットの複数のルーティングエントリをセットアップする方法

分類Dev

UITextFieldのshouldChangeCharactersInで複数のテキストフィールドを効果的に処理する方法

分類Dev

JPA、マップのエンティティタイプの値を主キーに追加する方法

分類Dev

UIButtonのプロパティと複数行間のスペースを適切に処理する方法

分類Dev

エンティティタイプのプロパティをTPH継承を使用して複数のテーブルにマッピングするEF

分類Dev

JPA:別のエンティティから1つのプロパティのみをマップする方法

分類Dev

ループせずにエンティティのリストからマップのリストにあるエンティティの必要なプロパティをキャプチャする直接の機能はありますか?

分類Dev

既存のJPAエンティティをPicketLinkにマップする方法

分類Dev

SpringDataを使用してJPAエンティティのバージョンフィールドを適切に処理する方法

分類Dev

春のセキュリティで複数の役割を処理する最良の方法

分類Dev

複数のキューに接続し、それらのメッセージを別のキューにルーティングする最も効率的な方法

分類Dev

同じ階層の複数のアイテムでフィルター機能のメジャーをフィルター処理する方法

分類Dev

HibernateプロバイダーでJPAをエンティティクラスの自動スキャンにする方法

分類Dev

複数のエンティティに対して単一のJPA仕様クラスとメソッドを使用する方法

分類Dev

Typescript(2.7 +)>パラメータの複数のタイプ>特定のプロパティを処理する

分類Dev

複数のエンティティをコンテキストブローカーにアップサーティング

分類Dev

キーは、エンティティのプロパティで、値がJPAやHibernateでのエンティティである地図を返す方法

分類Dev

保存されたプロパティのセットを処理し、迅速に取得する方法

分類Dev

SpringBoot-コントローラーメソッドでJPAエンティティのプロパティにアクセスする

Related 関連記事

  1. 1

    Spring JPA永続エンティティマネージャーを使用する場合、ロールスワップを処理する方法は?

  2. 2

    セマンティックUI:複数選択ドロップダウンでラベルの追加をキャンセルする方法

  3. 3

    JPA基準:ルートを複数のエンティティサブクラスにダウンキャストし、同じリンクエンティティのナチュラルIDでフィルタリングする

  4. 4

    webappとandroidアプリでSpringMVCバックエンドのセキュリティを処理する方法は?

  5. 5

    EntityFrameworkを使用してデータベース内のエンティティのハッシュテーブルプロパティを処理する方法

  6. 6

    複数のアセットをエンティティにアップロードする

  7. 7

    DTOを複数のエンティティにマップする方法は?

  8. 8

    elmアーキテクチャで複数のサブスクリプションを処理する方法

  9. 9

    同じHibernateエンティティを異なるスキームの複数のテーブルにマップする方法はありますか?

  10. 10

    Androidで同じエンティティIDの複数の画像をキャッシュする方法

  11. 11

    ソケットの複数のルーティングエントリをセットアップする方法

  12. 12

    UITextFieldのshouldChangeCharactersInで複数のテキストフィールドを効果的に処理する方法

  13. 13

    JPA、マップのエンティティタイプの値を主キーに追加する方法

  14. 14

    UIButtonのプロパティと複数行間のスペースを適切に処理する方法

  15. 15

    エンティティタイプのプロパティをTPH継承を使用して複数のテーブルにマッピングするEF

  16. 16

    JPA:別のエンティティから1つのプロパティのみをマップする方法

  17. 17

    ループせずにエンティティのリストからマップのリストにあるエンティティの必要なプロパティをキャプチャする直接の機能はありますか?

  18. 18

    既存のJPAエンティティをPicketLinkにマップする方法

  19. 19

    SpringDataを使用してJPAエンティティのバージョンフィールドを適切に処理する方法

  20. 20

    春のセキュリティで複数の役割を処理する最良の方法

  21. 21

    複数のキューに接続し、それらのメッセージを別のキューにルーティングする最も効率的な方法

  22. 22

    同じ階層の複数のアイテムでフィルター機能のメジャーをフィルター処理する方法

  23. 23

    HibernateプロバイダーでJPAをエンティティクラスの自動スキャンにする方法

  24. 24

    複数のエンティティに対して単一のJPA仕様クラスとメソッドを使用する方法

  25. 25

    Typescript(2.7 +)>パラメータの複数のタイプ>特定のプロパティを処理する

  26. 26

    複数のエンティティをコンテキストブローカーにアップサーティング

  27. 27

    キーは、エンティティのプロパティで、値がJPAやHibernateでのエンティティである地図を返す方法

  28. 28

    保存されたプロパティのセットを処理し、迅速に取得する方法

  29. 29

    SpringBoot-コントローラーメソッドでJPAエンティティのプロパティにアクセスする

ホットタグ

アーカイブ