1 回答

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊
pgjdbc 似乎獨(dú)立執(zhí)行每個(gè)語句。
我不建議將多個(gè)語句放入單個(gè)映射器語句中,因?yàn)樾袨槿Q于驅(qū)動(dòng)程序。
您應(yīng)該聲明兩個(gè)方法并在同一會(huì)話/事務(wù)中調(diào)用它們。
@Update("select set_config('lock_timeout', #{lockTimeout}, true)")
void setLockTimeout(String lockTimeout);
@Select("SELECT ......where id= #{myId} FOR UPDATE")
MyObject select(@Param("myId") String id);
一些注意事項(xiàng):
set_config()
被用作似乎SET LOCAL
不適用于 aPreparedStatement
。@Update
用于立即應(yīng)用更改。如果您使用@Select
,您可能需要SqlSession#commit()
顯式調(diào)用。與您的示例不同,該參數(shù)必須包含
s
iesetLockTimeout("1s")
。
如果您只想傳遞一個(gè)數(shù)字,#{lockTimeout} || 's'
應(yīng)該可以。
添加回答
舉報(bào)