Class JpaRetrievingOutboundGatewaySpec
java.lang.Object
org.springframework.integration.dsl.IntegrationComponentSpec<S,H>
org.springframework.integration.dsl.MessageHandlerSpec<S,JpaOutboundGateway>
org.springframework.integration.jpa.dsl.JpaBaseOutboundEndpointSpec<JpaRetrievingOutboundGatewaySpec>
org.springframework.integration.jpa.dsl.JpaRetrievingOutboundGatewaySpec
- All Implemented Interfaces:
DisposableBean
,FactoryBean<JpaOutboundGateway>
,InitializingBean
,Lifecycle
,Phased
,SmartLifecycle
,ComponentsRegistration
public class JpaRetrievingOutboundGatewaySpec
extends JpaBaseOutboundEndpointSpec<JpaRetrievingOutboundGatewaySpec>
A
JpaBaseOutboundEndpointSpec
extension for the
JpaOutboundGateway
with
OutboundGatewayType.RETRIEVING
mode.- Since:
- 5.0
- Author:
- Artem Bilan
-
Field Summary
Fields inherited from class org.springframework.integration.jpa.dsl.JpaBaseOutboundEndpointSpec
jpaExecutor
Fields inherited from class org.springframework.integration.dsl.IntegrationComponentSpec
logger, PARSER, target
Fields inherited from interface org.springframework.beans.factory.FactoryBean
OBJECT_TYPE_ATTRIBUTE
Fields inherited from interface org.springframework.context.SmartLifecycle
DEFAULT_PHASE
-
Constructor Summary
ModifierConstructorDescriptionprotected
JpaRetrievingOutboundGatewaySpec
(JpaExecutor jpaExecutor) -
Method Summary
Modifier and TypeMethodDescriptiondeleteAfterPoll
(boolean deleteAfterPoll) If set totrue
, the retrieved objects are deleted from the database upon being polled.deleteInBatch
(boolean deleteInBatch) If not set, this property defaults tofalse
, which means that deletion occurs on a per-object basis if a collection of entities is being deleted.expectSingleResult
(boolean expectSingleResult) This parameter indicates that only one result object shall be returned as a result from the executed JPA operation.firstResult
(int firstResult) Specify a first result in the query executed.firstResultExpression
(String firstResultExpression) Specify a SpEL expression that will be evaluated to get the first result in the query executed.firstResultExpression
(Expression firstResultExpression) Specify a SpEL expression that will be evaluated to get the first result in the query executed.flushAfterDelete
(boolean flush) If set totrue
theEntityManager.flush()
will be called after persistence operation.idExpression
(String idExpression) Specify a SpEL expression that will be evaluated to get theprimaryKey
forEntityManager.find(Class, Object)
.idExpression
(Expression idExpression) Specify a SpEL expression that will be evaluated to get theprimaryKey
forEntityManager.find(Class, Object)
.maxResults
(int maxResults) Set the maximum number of results expression.maxResultsExpression
(String maxResultsExpression) Specify a SpEL expression for maximum number of results expression.maxResultsExpression
(Expression maxResultsExpression) Specify a SpEL expression for maximum number of results expression.Methods inherited from class org.springframework.integration.jpa.dsl.JpaBaseOutboundEndpointSpec
entityClass, getComponentsToRegister, jpaQuery, namedQuery, nativeQuery, parameter, parameter, parameter, parameterExpression, parameterExpression, parameterSourceFactory, usePayloadAsParameterSource
Methods inherited from class org.springframework.integration.dsl.IntegrationComponentSpec
_this, afterPropertiesSet, destroy, doGet, get, getId, getObject, getObjectType, getPhase, id, isAutoStartup, isRunning, start, stop, stop
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.beans.factory.FactoryBean
isSingleton
-
Constructor Details
-
JpaRetrievingOutboundGatewaySpec
-
-
Method Details
-
expectSingleResult
This parameter indicates that only one result object shall be returned as a result from the executed JPA operation. If set totrue
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
Specify a first result in the query executed.- Parameters:
firstResult
- the first result to use.- Returns:
- the spec
-
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
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
Specify a SpEL expression that will be evaluated to get theprimaryKey
forEntityManager.find(Class, Object)
.- Parameters:
idExpression
- the SpEL expression for entityprimaryKey
.- Returns:
- the spec
-
idExpression
Specify a SpEL expression that will be evaluated to get theprimaryKey
forEntityManager.find(Class, Object)
.- Parameters:
idExpression
- the SpEL expression for entityprimaryKey
.- Returns:
- the spec
-
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
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
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
If set totrue
, 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 tofalse
.- Returns:
- the spec
-
deleteInBatch
If not set, this property defaults tofalse
, 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
If set totrue
theEntityManager.flush()
will be called after persistence operation. Has the same effect, if theflushSize
is specified to1
. For convenience in cases when the provided entity to persist is not an instance ofIterable
.- Parameters:
flush
- defaults to 'false'.- Returns:
- the spec
-