一个进程不断查询数据库,看某个字段时候已经被修改,如果修改则做下一步工作;如果没有修改继续循环查询
另外一个进程由用户操作去更新数据库中的这个字段
问题是,在上面这样的场景中,查询数据库的进程根本看不到数据被修改
解决办法:
给第一个查询部分也加上事务管理的代码(一般情况下,对于修改,更新部分的代码才进行事务的管理,而这种查询代码都是直接查询的)
TasksDAO dao = new TasksDAO(); Transaction tran = dao.getSession().beginTransaction(); Tasks task = dao.findById(id); tran.commit(); dao.getSession().close();