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