Mule ESB 数据库连接器 - select 插入后
Mule ESB Database connector - select after insert
我遇到了 mule 数据库连接器的问题。我有一个接收 JSON 和一些数据的流程,我获取了一些数据并使用它来将记录插入数据库。数据库在插入记录时生成自己的 ID。现在在同一流程中,我想 select 该 ID,但有时 return 没有任何结果。有没有可能当我在插入后立即执行 'select' 查询时,还没有 inserted/hasn 生成 ID?我该怎么做才能使其正常工作?如何让 'select' 数据库连接器等待该数据?
首先:
您是否检查过数据库连接器在响应中检索到 1(或者您的数据库显示受影响的行数的方式)?
如果您的流程配置为异步(mule 的默认设置)并且它有适当的连接超时,它应该在进入下一个连接器时添加信息。
此外,您是否检查过它是否确实在数据库中插入了该行?
您是否检查过您实际上是在使用 db 生成的正确 ID 执行 select?
建议您逐步调试以检查此信息。
希望对您有所帮助!
我使用 oracle 连接器执行了类似的步骤,并且在存储过程中运行良好。步骤为
a. Call Stored procedure 1
1. Call stored procedure to insert record based on parameters.
2. Commit the transaction.
3. Return 1(success) or 0(fail) based on outcome
b. Call Stored procedure 2 only if you get 1 (success) from Stored procedure
1. Retrieve id for the record inserted in stored procedure 1
在插入模式下,数据库连接器具有三个属性 autoGeneratedKeys 和 autoGeneratedKeysColumnIndexes 或 autoGeneratedKeysColumnNames .
除了负载中的行数,它returns Insert
的自动生成值
您应该在插入记录后执行 "Commit" 否则该记录不可用于立即 Select。我同意 user3366906 的回答。
我遇到了 mule 数据库连接器的问题。我有一个接收 JSON 和一些数据的流程,我获取了一些数据并使用它来将记录插入数据库。数据库在插入记录时生成自己的 ID。现在在同一流程中,我想 select 该 ID,但有时 return 没有任何结果。有没有可能当我在插入后立即执行 'select' 查询时,还没有 inserted/hasn 生成 ID?我该怎么做才能使其正常工作?如何让 'select' 数据库连接器等待该数据?
首先:
您是否检查过数据库连接器在响应中检索到 1(或者您的数据库显示受影响的行数的方式)?
如果您的流程配置为异步(mule 的默认设置)并且它有适当的连接超时,它应该在进入下一个连接器时添加信息。
此外,您是否检查过它是否确实在数据库中插入了该行?
您是否检查过您实际上是在使用 db 生成的正确 ID 执行 select?
建议您逐步调试以检查此信息。
希望对您有所帮助!
我使用 oracle 连接器执行了类似的步骤,并且在存储过程中运行良好。步骤为
a. Call Stored procedure 1
1. Call stored procedure to insert record based on parameters.
2. Commit the transaction.
3. Return 1(success) or 0(fail) based on outcome
b. Call Stored procedure 2 only if you get 1 (success) from Stored procedure
1. Retrieve id for the record inserted in stored procedure 1
在插入模式下,数据库连接器具有三个属性 autoGeneratedKeys 和 autoGeneratedKeysColumnIndexes 或 autoGeneratedKeysColumnNames .
除了负载中的行数,它returns Insert
的自动生成值您应该在插入记录后执行 "Commit" 否则该记录不可用于立即 Select。我同意 user3366906 的回答。