クラス JpaExecutor
java.lang.ObjectSE
org.springframework.integration.jpa.core.JpaExecutor
- 実装されたすべてのインターフェース:
Aware
、BeanFactoryAware
、InitializingBean
提供された結果からペイロードオブジェクトを生成する Jpa 操作を実行します。
- entityClass
- JpQl 選択クエリ
- SQL ネイティブクエリ
- JpQl 名前付きクエリ
- SQL ネイティブ名前付きクエリ
- 取得したオブジェクトを削除する
Message
ペイロードから「推測」されます。idExpression- 導入:
- 2.2
- 作成者:
- Gunnar Hillert, Amol Nayak, Artem Bilan
コンストラクターの概要
コンストラクターコンストラクター説明JpaExecutor
(EntityManagerEE entityManager) EntityManager
EE を直接取得するコンストラクター。JpaExecutor
(EntityManagerFactoryEE entityManagerFactory) EntityManager
EE を取得できるEntityManagerFactory
EE を取得するコンストラクター。JpaExecutor
(JpaOperations jpaOperations) カスタム動作が必要な場合は、JpaOperations
のカスタム実装を渡すことができます。メソッドのサマリー
修飾子と型メソッド説明void
パラメーターを確認して設定します。protected ListSE
<?> doPoll
(ParameterSource jpaQLParameterSource, int firstResult, int maxNumberOfResults) executeOutboundJpaOperation
(Message<?> message) 実際の Jpa オペレーションを実行します。poll()
JPA 操作を実行します。(通常は取得)JPA 操作を実行します。void
setBeanFactory
(BeanFactory beanFactory) void
setClearOnFlush
(boolean clearOnFlush) void
setDeleteAfterPoll
(boolean deleteAfterPoll) "true" に設定されている場合、取得されたオブジェクトは、ポーリング時にデータベースから削除されます。void
setDeleteInBatch
(boolean deleteInBatch) 設定されていない場合、このプロパティはデフォルトでfalse
に設定されます。これは、エンティティのコレクションが削除される場合、オブジェクトごとに削除が行われることを意味します。void
setEntityClass
(ClassSE<?> entityClass) データベースからエンティティを取得するために使用されているクラス型を設定します。void
setExpectSingleResult
(boolean expectSingleResult) このパラメーターは、実行された JPA 操作からの結果として 1 つの結果オブジェクトのみが返されることを示します。void
setFirstResultExpression
(Expression firstResultExpression) 実行されるクエリの最初の結果を取得するために評価される式を設定します。void
setFlush
(boolean flush) true
に設定されている場合、EntityManager.flush()
は永続化操作の後に呼び出されます。void
setFlushSize
(int flushSize) 指定された値が0
より大きい場合、EntityManager.flush()
は、永続化操作の後およびバッチ操作内で呼び出されます。void
setIdExpression
(Expression idExpression) EntityManager.find(Class, Object)
EE のprimaryKey
を取得するために評価される式を設定します。void
setIntegrationEvaluationContext
(EvaluationContext evaluationContext) void
setJpaParameters
(ListSE<JpaParameter> jpaParameters) void
setJpaQuery
(StringSE jpaQuery) void
setMaxNumberOfResults
(int maxNumberOfResults) データベースから取得する結果の最大数を設定します。void
setMaxResultsExpression
(Expression maxResultsExpression) 結果の最大数式の式を設定します。void
setNamedQuery
(StringSE namedQuery) 名前付きクエリは、名前付き JPQL ベースのクエリまたはネイティブ SQL クエリを参照できます。void
setNativeQuery
(StringSE nativeQuery) ネイティブ SQL クエリを使用して、データベースからデータをポーリングすることもできます。void
setParameterSource
(ParameterSource parameterSource) 追加のパラメーターを提供するために使用されるParameterSource
を指定します。void
setParameterSourceFactory
(ParameterSourceFactory parameterSourceFactory) void
setPersistMode
(PersistMode persistMode) void
setUsePayloadAsParameterSource
(BooleanSE usePayloadAsParameterSource)
コンストラクターの詳細
JpaExecutor
EntityManager
EE を取得できるEntityManagerFactory
EE を取得するコンストラクター。- パラメーター:
entityManagerFactory
- null であってはなりません。
JpaExecutor
EntityManager
EE を直接取得するコンストラクター。- パラメーター:
entityManager
- null であってはなりません。
JpaExecutor
カスタム動作が必要な場合は、JpaOperations
のカスタム実装を渡すことができます。実装自体は通常、EntityManager
EE へのアクセスを提供します。DefaultJpaOperations
およびAbstractJpaOperations
も参照してください。- パラメーター:
jpaOperations
- null であってはなりません。
メソッドの詳細
setIntegrationEvaluationContext
setEntityClass
データベースからエンティティを取得するために使用されているクラス型を設定します。- パラメーター:
entityClass
- null であってはなりません。
setJpaQuery
- パラメーター:
jpaQuery
- 指定された JPA クエリは null でも空でもいけません。
setNativeQuery
ネイティブ SQL クエリを使用して、データベースからデータをポーリングすることもできます。このプロパティを設定すると、ネイティブ SQL を使用できるようになります。オプションで、entityClass プロパティを同時に設定することもできます。指定すると、entityClass がネイティブクエリの結果クラスとして使用されます。- パラメーター:
nativeQuery
- 提供された SQL クエリは null または空であってはなりません。
setNamedQuery
名前付きクエリは、名前付き JPQL ベースのクエリまたはネイティブ SQL クエリを参照できます。- パラメーター:
namedQuery
- null または空であってはなりません
setPersistMode
setJpaParameters
setUsePayloadAsParameterSource
setFlush
public void setFlush(boolean flush) true
に設定されている場合、EntityManager.flush()
は永続化操作の後に呼び出されます。flushSize
が1
に指定されている場合、同じ効果があります。永続化するために提供されたエンティティがIterable
SE のインスタンスではない場合の便宜上。- パラメーター:
flush
- デフォルトは "false" です。
setFlushSize
public void setFlushSize(int flushSize) 指定された値が0
より大きい場合、EntityManager.flush()
は永続化操作の後およびバッチ操作内で呼び出されます。0
より大きい値が指定されている場合、このプロパティはflush
よりも優先されます。永続化するエンティティがIterable
SE のインスタンスではなく、このプロパティが0
より大きい場合、エンティティはflush
属性がtrue
に設定されているかのようにフラッシュされます。- パラメーター:
flushSize
- デフォルトは "0" です。
setClearOnFlush
public void setClearOnFlush(boolean clearOnFlush) - パラメーター:
clearOnFlush
- デフォルトは "false" です。- 関連事項:
setDeleteInBatch
public void setDeleteInBatch(boolean deleteInBatch) 設定されていない場合、このプロパティはデフォルトでfalse
に設定されます。これは、エンティティのコレクションが削除される場合、オブジェクトごとに削除が行われることを意味します。"true" に設定すると、ペイロードの要素がバッチ操作として削除されます。これにより、カスケード削除に関する問題が発生することに注意してください。
仕様「JSR317:Java Persistence API、バージョン 2.0」は、バッチ操作でのカスケード削除をサポートしていません。仕様は 4.10 章に次のように述べています。
「削除操作は、指定されたクラスとそのサブクラスのエンティティにのみ適用されます。関連するエンティティにはカスケードされません。」
- パラメーター:
deleteInBatch
- 設定されていない場合、デフォルトは "false" です。
setDeleteAfterPoll
public void setDeleteAfterPoll(boolean deleteAfterPoll) "true" に設定されている場合、取得されたオブジェクトは、ポーリング時にデータベースから削除されます。すべての状況で機能するとは限りません。ネイティブ SQL クエリ用。- パラメーター:
deleteAfterPoll
- デフォルトは "false" です。
setParameterSourceFactory
- パラメーター:
parameterSourceFactory
- null であってはなりません
setParameterSource
追加のパラメーターを提供するために使用されるParameterSource
を指定します。- パラメーター:
parameterSource
- null であってはなりません。
setExpectSingleResult
public void setExpectSingleResult(boolean expectSingleResult) このパラメーターは、実行された JPA 操作からの結果として 1 つの結果オブジェクトのみが返されることを示します。true
に設定し、JPA オペレーションの結果リストに含まれる要素が 1 つだけの場合、その 1 つの要素が抽出され、ペイロードとして返されます。結果マップに複数の要素が含まれ、
expectSingleResult
がtrue
の場合、MessagingException
がスローされます。false
に設定すると、完全な結果リストがペイロードとして返されます。- パラメーター:
expectSingleResult
- 単一のオブジェクトが期待される場合は true。
setFirstResultExpression
実行されるクエリの最初の結果を取得するために評価される式を設定します。null 式が設定されている場合、結果セット内のすべての結果が取得されます- パラメーター:
firstResultExpression
- 最初の結果式。- 関連事項:
setIdExpression
EntityManager.find(Class, Object)
EE のprimaryKey
を取得するために評価される式を設定します。- パラメーター:
idExpression
- エンティティprimaryKey
の SpEL 式。- 導入:
- 4.0
setMaxResultsExpression
結果式の最大数の式を設定します。null 以外の値である必要があります。1 を設定しないと、デフォルトですべてのレコードをフェッチする動作になります。- パラメーター:
maxResultsExpression
- 結果の最大式。
setMaxNumberOfResults
public void setMaxNumberOfResults(int maxNumberOfResults) データベースから取得する結果の最大数を設定します。デフォルトは 0 です。これは、可能なすべてのオブジェクトが取得されることを意味します。- パラメーター:
maxNumberOfResults
- 負であってはなりません。- 関連事項:
setBeanFactory
- 次で指定:
- インターフェース
BeanFactoryAware
のsetBeanFactory
- 例外:
BeansException
afterPropertiesSet
public void afterPropertiesSet()パラメーターを確認して設定します。例: 使用するParameterSourceFactory
を初期化します。- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
executeOutboundJpaOperation
実際の JPA 操作を実行します。戻り値を処理するためのアクセスが必要な場合は、このメソッドを呼び出します。これらのメソッドは、影響を受けるエンティティの数または影響を受けるエンティティ自体のいずれかを含む Map を返します。操作によって影響を受けるエンティティの数は、必ずしもデータベースで影響を受ける行の数と相関するとは限らないことに注意してください。
- パラメーター:
message
- メッセージ。- 戻り値:
- JPQL クエリを使用するときに影響を受けるエンティティの数。マージ / 永続化を使用すると、更新 / 挿入されたものが返されます。
poll
poll
JPA 操作 (通常は取得) を実行します。requestMessage は、parameterSourceFactory
を使用して追加のクエリパラメーターを提供するために使用できます。requestMessage パラメーターが null の場合、クエリパラメーターを提供するためにparameterSource
が使用されています。- パラメーター:
requestMessage
- null の場合があります。- 戻り値:
- null の可能性があるペイロードオブジェクト。
doPoll
protected ListSE<?> doPoll(ParameterSource jpaQLParameterSource, int firstResult, int maxNumberOfResults)