2018-09-29 16:33
注意一个核心问题,你的这段数据库操作代码全部处在一个事务中,如果后方数据库操作代码依赖于前方代码对数据库产生的影响就要格外注意
因为你上述多次操作数据库的所有代码处于一个事务中,所以事务提交之前数据库表中的数据是不会有任何变化的,而你靠后的数据库操作的 where 条件却依赖了这些变化,造成 where 条件实际上为 false, 最后看到的现象是数据库数据的变化不如自己预期
你可以将后方所依赖的数据库操作代码挪一部分到事务之前去,就能看到效果了
这个是 JDBC 事务的行为,jfinal 从来不会干预