Class JpaRetrievingOutboundGatewaySpec

All Implemented Interfaces:
DisposableBean, FactoryBean<JpaOutboundGateway>, InitializingBean, Lifecycle, Phased, SmartLifecycle, ComponentsRegistration

public class JpaRetrievingOutboundGatewaySpec extends JpaBaseOutboundEndpointSpec<JpaRetrievingOutboundGatewaySpec>
Since:
5.0
Author:
Artem Bilan
  • Constructor Details

    • JpaRetrievingOutboundGatewaySpec

      protected JpaRetrievingOutboundGatewaySpec(JpaExecutor jpaExecutor)
  • Method Details

    • expectSingleResult

      public JpaRetrievingOutboundGatewaySpec expectSingleResult(boolean expectSingleResult)
      This parameter indicates that only one result object shall be returned as a result from the executed JPA operation. If set to true and the result list from the JPA operations contains only 1 element, then that 1 element is extracted and returned as payload.
      Parameters:
      expectSingleResult - true if a single object is expected.
      Returns:
      the spec
    • firstResult

      public JpaRetrievingOutboundGatewaySpec firstResult(int firstResult)
      Specify a first result in the query executed.
      Parameters:
      firstResult - the first result to use.
      Returns:
      the spec
    • firstResultExpression

      public JpaRetrievingOutboundGatewaySpec firstResultExpression(String firstResultExpression)
      Specify a SpEL expression that will be evaluated to get the first result in the query executed.
      Parameters:
      firstResultExpression - The first result expression.
      Returns:
      the spec
    • firstResultExpression

      public JpaRetrievingOutboundGatewaySpec firstResultExpression(Expression firstResultExpression)
      Specify a SpEL expression that will be evaluated to get the first result in the query executed.
      Parameters:
      firstResultExpression - The first result expression.
      Returns:
      the spec
    • idExpression

      public JpaRetrievingOutboundGatewaySpec idExpression(String idExpression)
      Specify a SpEL expression that will be evaluated to get the primaryKey for EntityManager.find(Class, Object).
      Parameters:
      idExpression - the SpEL expression for entity primaryKey.
      Returns:
      the spec
    • idExpression

      public JpaRetrievingOutboundGatewaySpec idExpression(Expression idExpression)
      Specify a SpEL expression that will be evaluated to get the primaryKey for EntityManager.find(Class, Object).
      Parameters:
      idExpression - the SpEL expression for entity primaryKey.
      Returns:
      the spec
    • maxResults

      public JpaRetrievingOutboundGatewaySpec maxResults(int maxResults)
      Set the maximum number of results expression. It has be a non null value Not setting one will default to the behavior of fetching all the records
      Parameters:
      maxResults - the maximum number of results to retrieve
      Returns:
      the spec
    • maxResultsExpression

      public JpaRetrievingOutboundGatewaySpec maxResultsExpression(String maxResultsExpression)
      Specify a SpEL expression for maximum number of results expression. Not setting one will default to the behavior of fetching all the records
      Parameters:
      maxResultsExpression - The maximum results expression.
      Returns:
      the spec
    • maxResultsExpression

      public JpaRetrievingOutboundGatewaySpec maxResultsExpression(Expression maxResultsExpression)
      Specify a SpEL expression for maximum number of results expression. Not setting one will default to the behavior of fetching all the records
      Parameters:
      maxResultsExpression - The maximum results expression.
      Returns:
      the spec
    • deleteAfterPoll

      public JpaRetrievingOutboundGatewaySpec deleteAfterPoll(boolean deleteAfterPoll)
      If set to true, the retrieved objects are deleted from the database upon being polled. May not work in all situations, e.g. for Native SQL Queries.
      Parameters:
      deleteAfterPoll - defaults to false.
      Returns:
      the spec
    • deleteInBatch

      public JpaRetrievingOutboundGatewaySpec deleteInBatch(boolean deleteInBatch)
      If not set, this property defaults to false, which means that deletion occurs on a per-object basis if a collection of entities is being deleted.

      If set to 'true' the elements of the payload are deleted as a batch operation. Be aware that this exhibits issues in regard to cascaded deletes.

      The specification 'JSR 317: Java Persistence API, Version 2.0' does not support cascaded deletes in batch operations. The specification states in chapter 4.10:

      "A delete operation only applies to entities of the specified class and its subclasses. It does not cascade to related entities."

      Parameters:
      deleteInBatch - Defaults to 'false' if not set.
      Returns:
      the spec
    • flushAfterDelete

      public JpaRetrievingOutboundGatewaySpec flushAfterDelete(boolean flush)
      If set to true the EntityManager.flush() will be called after persistence operation. Has the same effect, if the flushSize is specified to 1. For convenience in cases when the provided entity to persist is not an instance of Iterable.
      Parameters:
      flush - defaults to 'false'.
      Returns:
      the spec