クラス JpaExecutor

java.lang.ObjectSE
org.springframework.integration.jpa.core.JpaExecutor
実装されたすべてのインターフェース:
AwareBeanFactoryAwareInitializingBean

public class JpaExecutor extends ObjectSE implements InitializingBean, BeanFactoryAware
提供された結果からペイロードオブジェクトを生成する Jpa 操作を実行します。
  • entityClass
  • JpQl 選択クエリ
  • SQL ネイティブクエリ
  • JpQl 名前付きクエリ
  • SQL ネイティブ名前付きクエリ
。オブジェクトが取得されると、次のことも行われる可能性があります。
  • 取得したオブジェクトを削除する
entityClass も他のクエリも指定されていない場合、entity-class は Message ペイロードから「推測」されます。idExpression
導入:
2.2
作成者:
Gunnar Hillert, Amol Nayak, Artem Bilan
  • コンストラクターの詳細

    • JpaExecutor

      public JpaExecutor(EntityManagerFactoryEE entityManagerFactory)
      EntityManagerEE を取得できる EntityManagerFactoryEE を取得するコンストラクター。
      パラメーター:
      entityManagerFactory - null であってはなりません。
    • JpaExecutor

      public JpaExecutor(EntityManagerEE entityManager)
      EntityManagerEE を直接取得するコンストラクター。
      パラメーター:
      entityManager - null であってはなりません。
    • JpaExecutor

      public JpaExecutor(JpaOperations jpaOperations)
      カスタム動作が必要な場合は、JpaOperations のカスタム実装を渡すことができます。実装自体は通常、EntityManagerEE へのアクセスを提供します。DefaultJpaOperations および AbstractJpaOperations も参照してください。
      パラメーター:
      jpaOperations - null であってはなりません。
  • メソッドの詳細

    • setIntegrationEvaluationContext

      public void setIntegrationEvaluationContext(EvaluationContext evaluationContext)
    • setEntityClass

      public void setEntityClass(ClassSE<?> entityClass)
      データベースからエンティティを取得するために使用されているクラス型を設定します。
      パラメーター:
      entityClass - null であってはなりません。
    • setJpaQuery

      public void setJpaQuery(StringSE jpaQuery)
      パラメーター:
      jpaQuery - 指定された JPA クエリは null でも空でもいけません。
    • setNativeQuery

      public void setNativeQuery(StringSE nativeQuery)
      ネイティブ SQL クエリを使用して、データベースからデータをポーリングすることもできます。このプロパティを設定すると、ネイティブ SQL を使用できるようになります。オプションで、entityClass プロパティを同時に設定することもできます。指定した場合、entityClass はネイティブクエリの結果クラスとして使用されます。
      パラメーター:
      nativeQuery - 提供された SQL クエリは null または空であってはなりません。
    • setNamedQuery

      public void setNamedQuery(StringSE namedQuery)
      名前付きクエリは、名前付き JPQL ベースのクエリまたはネイティブ SQL クエリを参照できます。
      パラメーター:
      namedQuery - null または空であってはなりません
    • setPersistMode

      public void setPersistMode(PersistMode persistMode)
    • setJpaParameters

      public void setJpaParameters(ListSE<JpaParameter> jpaParameters)
    • setUsePayloadAsParameterSource

      public void setUsePayloadAsParameterSource(BooleanSE usePayloadAsParameterSource)
    • 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)
      true に設定されている場合、EntityManager.clear() が呼び出されます。これは、永続化操作の実行後に EntityManager.flush() が呼び出された場合に限ります。
      パラメーター:
      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

      public void setParameterSourceFactory(ParameterSourceFactory parameterSourceFactory)
      パラメーター:
      parameterSourceFactory - null であってはなりません
    • setParameterSource

      public void setParameterSource(ParameterSource parameterSource)
      追加のパラメーターを提供するために使用される ParameterSource を指定します。
      パラメーター:
      parameterSource - null であってはなりません。
    • setExpectSingleResult

      public void setExpectSingleResult(boolean expectSingleResult)
      このパラメーターは、実行された JPA 操作からの結果として 1 つの結果オブジェクトのみが返されることを示します。true に設定し、JPA オペレーションの結果リストに含まれる要素が 1 つだけの場合、その 1 つの要素が抽出され、ペイロードとして返されます。

      結果マップに複数の要素が含まれ、expectSingleResult が true の場合、MessagingException がスローされます。

      false に設定すると、完全な結果リストがペイロードとして返されます。

      パラメーター:
      expectSingleResult - 単一のオブジェクトが期待される場合は true。
    • setFirstResultExpression

      public void setFirstResultExpression(Expression firstResultExpression)
      実行されるクエリの最初の結果を取得するために評価される式を設定します。null 式が設定されている場合、結果セット内のすべての結果が取得されます
      パラメーター:
      firstResultExpression - 最初の結果式。
      関連事項:
    • setIdExpression

      public void setIdExpression(Expression idExpression)
      EntityManager.find(Class, Object)EE の primaryKey を取得するために評価される式を設定します。
      パラメーター:
      idExpression - エンティティ primaryKey の SpEL 式。
      導入:
      4.0
    • setMaxResultsExpression

      public void setMaxResultsExpression(Expression maxResultsExpression)
      結果式の最大数の式を設定します。null 以外の値である必要があります。1 を設定しないと、デフォルトですべてのレコードをフェッチする動作になります。
      パラメーター:
      maxResultsExpression - 結果の最大式。
    • setMaxNumberOfResults

      public void setMaxNumberOfResults(int maxNumberOfResults)
      データベースから取得する結果の最大数を設定します。デフォルトは 0 です。これは、可能なすべてのオブジェクトが取得されることを意味します。
      パラメーター:
      maxNumberOfResults - 負であってはなりません。
      関連事項:
    • setBeanFactory

      public void setBeanFactory(BeanFactory beanFactory) throws BeansException
      次で指定:
      インターフェース BeanFactoryAwaresetBeanFactory 
      例外:
      BeansException
    • afterPropertiesSet

      public void afterPropertiesSet()
      パラメーターを確認して設定します。例: 使用する ParameterSourceFactory を初期化します。
      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
    • executeOutboundJpaOperation

      public ObjectSE executeOutboundJpaOperation(Message<?> message)
      実際の JPA 操作を実行します。戻り値を処理するためのアクセスが必要な場合は、このメソッドを呼び出します。これらのメソッドは、影響を受けるエンティティの数または影響を受けるエンティティ自体のいずれかを含む Map を返します。

      操作によって影響を受けるエンティティの数は、必ずしもデータベースで影響を受ける行の数と相関するとは限らないことに注意してください。

      パラメーター:
      message - メッセージ。
      戻り値:
      JPQL クエリを使用するときに影響を受けるエンティティの数。マージ / 永続化を使用すると、更新 / 挿入されたものが返されます。
    • poll

      @Nullable public ObjectSE poll()
      JPA 操作を実行します。poll(Message) へのデリゲート。
      戻り値:
      オブジェクトまたは null。
    • poll

      @Nullable public ObjectSE poll(@Nullable Message<?> requestMessage)
      (通常は取得中の)JPA 操作を実行します。requestMessage は、parameterSourceFactory を使用して追加のクエリパラメーターを提供するために使用できます。requestMessage パラメーターが null の場合、parameterSource がクエリパラメーターの提供に使用されています。
      パラメーター:
      requestMessage - null の場合があります。
      戻り値:
      null の可能性があるペイロードオブジェクト。
    • doPoll

      protected ListSE<?> doPoll(ParameterSource jpaQLParameterSource, int firstResult, int maxNumberOfResults)