クラス 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) EntityManagerEE を直接取得するコンストラクター。JpaExecutor(EntityManagerFactoryEE entityManagerFactory) EntityManagerEE を取得できるEntityManagerFactoryEE を取得するコンストラクター。JpaExecutor(JpaOperations jpaOperations) カスタム動作が必要な場合は、JpaOperationsのカスタム実装を渡すことができます。メソッドのサマリー
修飾子と型メソッド説明voidパラメーターを確認して設定します。protected ListSE<?> doPoll(@Nullable ParameterSource jpaQLParameterSource, int firstResult, int maxNumberOfResults) @Nullable ObjectSEexecuteOutboundJpaOperation(Message<?> message) 実際の Jpa オペレーションを実行します。@Nullable ObjectSEpoll()JPA 操作を実行します。@Nullable ObjectSE(通常は取得)JPA 操作を実行します。voidsetBeanFactory(BeanFactory beanFactory) voidsetClearOnFlush(boolean clearOnFlush) voidsetDeleteAfterPoll(boolean deleteAfterPoll) "true" に設定されている場合、取得されたオブジェクトは、ポーリング時にデータベースから削除されます。voidsetDeleteInBatch(boolean deleteInBatch) 設定されていない場合、このプロパティはデフォルトでfalseに設定されます。これは、エンティティのコレクションが削除される場合、オブジェクトごとに削除が行われることを意味します。voidsetEntityClass(ClassSE<?> entityClass) データベースからエンティティを取得するために使用されているクラス型を設定します。voidsetExpectSingleResult(boolean expectSingleResult) このパラメーターは、実行された JPA 操作からの結果として 1 つの結果オブジェクトのみが返されることを示します。voidsetFirstResultExpression(Expression firstResultExpression) 実行されるクエリの最初の結果を取得するために評価される式を設定します。voidsetFlush(boolean flush) trueに設定されている場合、EntityManager.flush()は永続化操作の後に呼び出されます。voidsetFlushSize(int flushSize) 指定された値が0より大きい場合、EntityManager.flush()は、永続化操作の後およびバッチ操作内で呼び出されます。voidsetIdExpression(Expression idExpression) EntityManager.find(Class, Object)EE のprimaryKeyを取得するために評価される式を設定します。voidsetIntegrationEvaluationContext(EvaluationContext evaluationContext) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。アプリケーションコンテキストから取得されたものを優先します。voidsetJpaParameters(ListSE<JpaParameter> jpaParameters) voidsetJpaQuery(StringSE jpaQuery) voidsetMaxNumberOfResults(int maxNumberOfResults) データベースから取得する結果の最大数を設定します。voidsetMaxResultsExpression(Expression maxResultsExpression) 結果の最大数式の式を設定します。voidsetNamedQuery(StringSE namedQuery) 名前付きクエリは、名前付き JPQL ベースのクエリまたはネイティブ SQL クエリを参照できます。voidsetNativeQuery(StringSE nativeQuery) ネイティブ SQL クエリを使用して、データベースからデータをポーリングすることもできます。voidsetParameterSource(ParameterSource parameterSource) 追加のパラメーターを提供するために使用されるParameterSourceを指定します。voidsetParameterSourceFactory(ParameterSourceFactory parameterSourceFactory) voidsetPersistMode(PersistMode persistMode) voidsetUsePayloadAsParameterSource(BooleanSE usePayloadAsParameterSource)
コンストラクターの詳細
JpaExecutor
EntityManagerEE を取得できるEntityManagerFactoryEE を取得するコンストラクター。- パラメーター:
entityManagerFactory- null であってはなりません。
JpaExecutor
EntityManagerEE を直接取得するコンストラクター。- パラメーター:
entityManager- null であってはなりません。
JpaExecutor
カスタム動作が必要な場合は、JpaOperationsのカスタム実装を渡すことができます。実装自体は通常、EntityManagerEE へのアクセスを提供します。DefaultJpaOperationsおよびAbstractJpaOperationsも参照してください。- パラメーター:
jpaOperations- null であってはなりません。
メソッドの詳細
setIntegrationEvaluationContext
@DeprecatedSE(since="7.0", forRemoval=true) public void setIntegrationEvaluationContext(EvaluationContext evaluationContext) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。アプリケーションコンテキストから取得されたものを優先します。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に指定されている場合、同じ効果があります。永続化するために提供されたエンティティがIterableSE のインスタンスではない場合の便宜上。- パラメーター:
flush- デフォルトは "false" です。
setFlushSize
public void setFlushSize(int flushSize) 指定された値が0より大きい場合、EntityManager.flush()は永続化操作の後およびバッチ操作内で呼び出されます。0より大きい値が指定されている場合、このプロパティはflushよりも優先されます。永続化するエンティティがIterableSE のインスタンスではなく、このプロパティが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(@Nullable ParameterSource jpaQLParameterSource, int firstResult, int maxNumberOfResults)