182.4. 选项


JPA 组件支持 5 个选项,如下所列。

名称描述默认值类型

entityManagerFactory (common)

使用 EntityManagerFactory。强烈建议您进行配置。

 

EntityManagerFactory

transactionManager (common)

使用 PlatformTransactionManager 管理事务。

 

PlatformTransaction Manager

joinTransaction (common)

camel-jpa 组件默认加入事务。您可以使用这个选项来关闭这个选项,例如,如果您使用 LOCAL_RESOURCE,并加入事务与 JPA 供应商无法工作。这个选项也可以在 JpaComponent 上全局设置,而不必在所有端点上设置它。

true

布尔值

sharedEntityManager (common)

是否将 Spring 的 SharedEntityManager 用于 consumer/producer。在大多数情况下,joinTransaction 应设置为 false,因为这不是 EXTENDED EntityManager。

false

布尔值

resolveProperty Placeholders (advanced)

启动时组件是否应解析自身上的属性占位符。只有属于 String 类型的属性才能使用属性占位符。

true

布尔值

JPA 端点使用 URI 语法进行配置:

jpa:entityType

使用以下路径和查询参数:

182.4.1. 路径参数(1 参数):

名称描述默认值类型

entityType

必需 JPA 注解的类以用作实体。

 

182.4.2. 查询参数(42 参数):

名称描述默认值类型

joinTransaction (common)

camel-jpa 组件默认加入事务。您可以使用这个选项来关闭这个选项,例如,如果您使用 LOCAL_RESOURCE,并加入事务与 JPA 供应商无法工作。这个选项也可以在 JpaComponent 上全局设置,而不必在所有端点上设置它。

true

布尔值

maximumResults (common)

设置在 Query 上检索的最大结果数。

-1

int

namedQuery (common)

使用命名查询。

 

字符串

nativeQuery (common)

使用自定义原生查询。在使用原生查询时,您可能还想使用选项 resultClass。

 

字符串

parameters (common)

此键/值映射用于构建查询参数。它预期是通用类型 java.util.Map,其中键是给定 JPA 查询的命名参数,值是您要为选择的对应有效值。当用于制作者时,简单表达式可用作参数值。它允许您从消息正文、标头等中检索参数值。

 

Map

persistenceUnit (common)

需要 默认情况下使用的 JPA Persistence 单元。

Camel

字符串

query (common)

使用自定义查询。

 

字符串

resultClass (common)

定义返回的有效负载的类型(我们将调用 entityManager.createNativeQuery (nativeQuery, resultClass)),而不是 entityManager.createNativeQuery (nativeQuery)。如果没有这个选项,我们将返回一个对象数组。仅在使用数据时与原生查询结合使用时具有影响。

 

sharedEntityManager (common)

是否将 Spring 的 SharedEntityManager 用于 consumer/producer。在大多数情况下,joinTransaction 应设置为 false,因为这不是 EXTENDED EntityManager。

false

布尔值

bridgeErrorHandler (consumer)

允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。

false

布尔值

consumeDelete (consumer)

如果为 true,则实体会在被使用后删除;如果为 false,则实体不会被删除。

true

布尔值

consumeLockEntity (consumer)

指定是否在处理轮询结果时在每个实体 bean 上设置专用锁定。

true

布尔值

deleteHandler (consumer)

使用自定义 DeleteHandler 在处理交换后删除行

 

DeleteHandler

lockModeType (consumer)

在消费者上配置锁定模式。

PESSIMISTIC_WRITE

LockModeType

maxMessagesPerPoll (consumer)

整数值,用于定义每个轮询收集的最大消息数。默认情况下,不会设置最大值。可用于避免在启动服务器时轮询数千个消息。将值设为 0 或负数设置为 disable。

 

int

preDeleteHandler (consumer)

使用自定义 Pre-DeleteHandler 在消费者读取实体后删除行。

 

DeleteHandler

sendEmptyMessageWhenIdle (consumer)

如果轮询使用者没有轮询任何文件,您可以启用此选项来发送空消息(无正文)。

false

布尔值

skipLockedEntity (consumer)

配置是否在锁定时使用 NOWAIT,并静默跳过该实体。

false

布尔值

transacted (consumer)

是否在处理整个批处理时以转换模式运行消费者,所有消息都将提交或回滚。默认行为(false)是提交所有之前成功处理的消息,仅回滚最后的失败消息。

false

布尔值

exceptionHandler (consumer)

要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。

 

ExceptionHandler

exchangePattern (consumer)

在消费者创建交换时设置交换模式。

 

ExchangePattern

pollStrategy (consumer)

可插拔 org.apache.camel.PollingConsumerPollingStrategy 允许您提供自定义实施来控制在轮询操作期间通常会发生错误处理,然后再创建交换并在 Camel 中路由。

 

PollingConsumerPoll Strategy

flushOnSend (producer)

在实体 bean 持久保留后,清除 EntityManager。

true

布尔值

remove (producer)

指明使用 entityManager.remove (entity)。

false

布尔值

useExecuteUpdate (producer)

配置在生成者执行查询时是否使用 executeUpdate ()。当您将 INSERT、UPDATE 或 DELETE 语句用作命名查询时,您需要将此选项指定为 'true'。

 

布尔值

usePassedInEntityManager (producer)

如果设置为 true,则 Camel 将使用标题 JpaConstants.ENTITY_MANAGER 中的 EntityManager,而不是组件/端点上配置的实体管理器。这允许最终用户控制将使用的实体管理器。

false

布尔值

usePersist (producer)

指明使用 entityManager.persist (entity)而不是 entityManager.merge (entity)。注: entityManager.persist (entity)不适用于分离实体(实体管理器必须执行 UPDATE 而不是 INSERT 查询)!

false

布尔值

entityManagerProperties (advanced)

要使用的实体管理器的其他属性。

 

Map

同步 (advanced)

设置是否应严格使用同步处理,或者 Camel 允许使用异步处理(如果受支持)。

false

布尔值

backoffErrorThreshold (scheduler)

在 backoffMultipler 应该 kick-in 之前发生的后续错误轮询(因为某些错误)的数量。

 

int

backoffIdleThreshold (scheduler)

在 backoffMultipler 应该 kick-in 之前应该发生的后续空闲轮询数量。

 

int

backoffMultiplier (scheduler)

如果一行中有很多后续空闲/errors,则让调度的轮询消费者避退。然后,倍数是在下一次实际尝试再次发生前跳过的轮询数量。当使用这个选项时,还必须配置 backoffIdleThreshold 和/或 backoffErrorThreshold。

 

int

delay (scheduler)

下一次轮询前的时间(毫秒)。您还可以使用单位来指定时间值,如 60s (60 秒)、5m30s (5 分钟和 30 秒)和 1h (1 小时)。

500

long

greedy (scheduler)

如果启用了 greedy,如果上一个运行轮询 1 或更多消息,则 ScheduledPollConsumer 将立即运行。

false

布尔值

initialDelay (scheduler)

第一次轮询开始前的毫秒。您还可以使用单位来指定时间值,如 60s (60 秒)、5m30s (5 分钟和 30 秒)和 1h (1 小时)。

1000

long

runLoggingLevel (scheduler)

消费者在轮询时记录 start/complete log 行。这个选项允许您为其配置日志级别。

TRACE

LoggingLevel

scheduledExecutorService (scheduler)

允许配置用于消费者的自定义/共享线程池。默认情况下,每个使用者都有自己的单线程线程池。

 

ScheduledExecutor Service

scheduler (scheduler)

使用 camel-spring 或 camel-quartz2 组件的 cron 调度程序

none

ScheduledPollConsumer Scheduler

schedulerProperties (scheduler)

在使用自定义调度程序或任何基于 Spring 的调度程序时配置附加属性。

 

Map

startScheduler (scheduler)

调度程序是否应自动启动。

true

布尔值

timeUnit (scheduler)

initialDelay 和 delay 选项的时间单位。

MILLISECONDS

TimeUnit

useFixedDelay (scheduler)

控制是否使用固定延迟或固定率。详情请参阅 JDK 中的 ScheduledExecutorService。

true

布尔值

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.