第32章 JPA
Camel 1.0 以降
producer と consumer の両方がサポート対象。
JPA コンポーネントを使用すると、EJB 3 の Java Persistence Architecture (JPA) を使用して永続ストレージから Java オブジェクトを格納および取得できます。Java Persistence Architecture (JPA) は、OpenJPA、Hibernate、TopLink などのオブジェクト/リレーショナルマッピング (ORM) 製品をラップする標準インターフェイスレイヤーです。
このコンポーネントの pom.xml
に次の依存関係を追加します。
32.1. エンドポイントへの送信 リンクのコピーリンクがクリップボードにコピーされました!
Java エンティティー Bean を JPA producer エンドポイントに送信することにより、データベースに格納できます。In
メッセージのボディーは、エンティティー Bean (つまり、@Entity アノテーションが付けられた POJO) またはエンティティー Bean のコレクションまたは配列であると想定されます。
本文がエンティティーのリストである場合は、producer エンドポイントに渡される設定として entityType=java.util.List
を使用します。
本文に前にリストされたタイプのいずれも含まれていない場合は、エンドポイントの前に Message Translator を配置して、最初に必要な変換を実行します。
producer にも query
、namedQuery
または nativeQuery を
使用できます。parameters
の値には、メッセージ本文、ヘッダーなどからパラメーター値を取得できるシンプルな式を使用できます。これらのクエリーは、SELECT
JPQL/SQL ステートメントを使用した一連のデータの取得、および UPDATE
/DELETE
JPQL/SQL ステートメントを使用した一括更新/削除の実行に使用できます。camel は query
や nativeQuery
とは異なり、名前付きクエリーを調べないため、namedQuery
で UPDATE
/DELETE
を実行する場合は、useExecuteUpdate
を true
に指定する必要があることに注意してください。