2

我正在使用 jBoss5 + Struts + iBatis 开发基于 Web 的服务。

“SELECT ... FOR UPDATE” oracle 查询有没有合适的方法(我的意思是,选择涉及事务管理的 iBatis 方法)?

……

我的问题是这个。我的程序的某个部分导致表中某些行的 RX 锁定。

来源如下,

try{
    sqlMap.startTransaction();
    ...
    HashMap someMap = (HashMap)sqlMap.queryForObject("theSelectSQLusesForUpdate",someOtherMap);
    // usually hangs at the sentence above
    ...
    //inserts, updates, selects, ~~~
    ...
    sqlMap.commitTransaction();
} catch block {} finally {
    sqlMap.endTransaction();
}

我发现“SELECT ... FOR UPDATE”语句被 Oracle 视为 DML。因此,我使用“FOR UPDATE”的 SQL 应该涉及某种事务管理,但 iBatis 不支持它,因为查询是在 ... 块中定义的。

再次我的问题,“SELECT ... FOR UPDATE”oracle查询是否有任何合适的方法(我的意思是,选择涉及事务管理的iBatis方法)?

如果有人给我答案,他或她就是我的救星。。

谢谢。

4

0 回答 0