Mule 3.9.1 数据库参数化查询不返回数据

Mule 3.9.1 database parameterized-query not returning data

我有以下流程参考:<flow name="getAccountsFlow"> <logger message="Type:&quot;#[message.inboundProperties.'http.query.params'.type]&quot;" level="INFO" doc:name="Logger"/> <db:select config-ref="MySQL_Configuration" doc:name="Database"> <db:parameterized-query><![CDATA[select * from flights_customers where accountType = "#[message.inboundProperties.'http.query.params'.type]"]]></db:parameterized-query> </db:select> </flow>

记录器打印变量值:INFO 2019-01-07 16:08:51,270 [[assignment-accounts].accounts-api-httpListenerConfig.worker.03] org.mule.api.processor.LoggerMessageProcessor: Type:"business"

但是查询了returns0行。

但是当我使用变量转换器时,可以在查询中访问值:<flow name="getAccountsFlow"> <logger message="Type:&quot;#[message.inboundProperties.'http.query.params'.type]&quot;" level="INFO" doc:name="Logger"/> <set-variable variableName="type" value="#[message.inboundProperties.'http.query.params'.type]" doc:name="Variable"/> <db:select config-ref="MySQL_Configuration" doc:name="Database"> <db:parameterized-query><![CDATA[select * from flights_customers where accountType = :type]]></db:parameterized-query> <db:in-param name="type" type="VARCHAR" value="#[flowVars.type]" ></db:in-param> </db:select> </flow>

为什么 #[message.inboundProperties.'http.query.params'.type] 在查询中不可见?

这是因为查询中的表达式周围有双引号。尝试删除那些。

但是无论如何使用占位符更安全,因为注入,所以我认为无论如何我都会使用第二个例子。