我正在使用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方法)??
如果有人给我答案,他或她就是我的救星......
感谢。