详情点下方链接
for-update笔记链接
注:当选中某一个行的时候,如果是通过主键id选中的。那么这个时候是行级锁。
其他的行还是可以直接insert 或者update的。如果是通过其他的方式选中行,或者选中的条件不明确包含主键。这个时候会锁表。其他的事务对该表的任意一行记录都无法进行插入或者更新操作。只能读取。
<select id="forUpdate" resultType="java.lang.Integer">select * from t_sc_wm_bu_supply_task where SUPPLY_TASK_ID in (select SUPPLY_TASK_ID from t_sc_wm_bu_supply_task where TASK_CODE in<foreach collection="list" item="item" open="(" close=")" separator=",">#{item}</foreach>) for update
</select>