我需要知道 Hibernate 的会话是否是线程安全的。但很明显,每个线程都附加了一个新会话以供执行。但我的问题是,如果在一个线程中我更新了某个实体的某些值,那么在同一时间执行期间会反映在其他线程中吗?
我的问题是当我从两个线程顺序触发更新时,值会正确更新,但是当我几乎完全触发更新时,它会失败。
例如。表的当前阶段。
ID NAME MARKS
------- --------- --------
1 John 54
我正在尝试执行以下操作:
Student student = session.load(Student.class, 1);
student.setMarks(student.getMarks() + 1);
session.update(student);
session.close();
当我尝试在循环中运行上述代码 10 时,表“student”中的“marks”值被正确更新,即该值被更新为 64,这是正确的。
但是当我尝试在线程环境中运行相同的代码时,结果很糟糕。