如何在 Mule4 Select 查询中添加动态参数

How to add a dynamic parameter in Mule4 Select Query

我有一个 SELECT 查询,其整个 WHERE 条件来自 Java class。如何在 SELECT 查询中使用整个 WHERE 条件?这是我试过的:

SELECT * FROM EMPLOYEE_TABLE WHERE 1=1 #[payload]

这里的 payload 是来自 Java class 的 WHERE 子句:NAME = VKP AND STATE = PA AND CITY = KOP

我收到类似 的错误消息“parameter null was not bound for query select…”,但我能够看到有效负载值来自Java class 和日志中。

您不应在查询中直接使用表达式。而是将表达式中的查询分配给变量,然后将该变量用作查询。

例如:

    <set-variable value="#['SELECT * FROM EMPLOYEE_TABLE WHERE 1=1 ' ++ payload]" name="query" />
    <db:select ...>
        <db:sql>#[vars.query]</db:sql>
    </db:select>

请注意,执行此操作可能存在 SQL 注入漏洞。