Class JpaInboundChannelAdapterSpec

All Implemented Interfaces:
Aware, BeanClassLoaderAware, BeanFactoryAware, DisposableBean, FactoryBean<JpaPollingChannelAdapter>, InitializingBean, Lifecycle, Phased, SmartLifecycle, ComponentsRegistration

public class JpaInboundChannelAdapterSpec extends MessageSourceSpec<JpaInboundChannelAdapterSpec,JpaPollingChannelAdapter> implements ComponentsRegistration
Since:
5.0
Author:
Artem Bilan
  • Field Details

    • jpaExecutor

      protected final JpaExecutor jpaExecutor
  • Constructor Details

    • JpaInboundChannelAdapterSpec

      protected JpaInboundChannelAdapterSpec(JpaExecutor jpaExecutor)
  • Method Details

    • entityClass

      public JpaInboundChannelAdapterSpec entityClass(Class<?> entityClass)
      Specify the class type which is being used for retrieving entities from the database.
      Parameters:
      entityClass - the entity Class to use
      Returns:
      the spec
    • jpaQuery

      public JpaInboundChannelAdapterSpec jpaQuery(String jpaQuery)
      Specify a JPA query to perform persistent operation.
      Parameters:
      jpaQuery - the JPA query to use.
      Returns:
      the spec
    • nativeQuery

      public JpaInboundChannelAdapterSpec nativeQuery(String nativeQuery)
      Specify a native SQL query to perform persistent operation.
      Parameters:
      nativeQuery - the native SQL query to use.
      Returns:
      the spec
    • namedQuery

      public JpaInboundChannelAdapterSpec namedQuery(String namedQuery)
      Specify a name a named JPQL based query or a native SQL query.
      Parameters:
      namedQuery - the name of the pre-configured query.
      Returns:
      the spec
    • deleteAfterPoll

      public JpaInboundChannelAdapterSpec 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 JpaInboundChannelAdapterSpec 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 regards 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 JpaInboundChannelAdapterSpec 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
    • parameterSource

      public JpaInboundChannelAdapterSpec parameterSource(ParameterSource parameterSource)
      Specify a ParameterSource that would be used to provide additional parameters.
      Parameters:
      parameterSource - the ParameterSource to use.
      Returns:
      the spec
    • expectSingleResult

      public JpaInboundChannelAdapterSpec 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
    • maxResults

      public JpaInboundChannelAdapterSpec 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 JpaInboundChannelAdapterSpec 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 JpaInboundChannelAdapterSpec 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
    • getComponentsToRegister

      public Map<Object,String> getComponentsToRegister()
      Specified by:
      getComponentsToRegister in interface ComponentsRegistration