适当的iBatis方法用于SELECT ~~~ FOR UPDATE oracle SQL查询?

时间:2012-10-19 13:18:59

标签: java oracle jdbc transactions ibatis

我正在使用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();
}

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

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

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

感谢。

0 个答案:

没有答案