Мне нужно знать, является ли сеанс 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, тогда значение «marks» в таблице «student» корректно обновляется, то есть значение обновляется до 64, что является правильным.
Но когда я пытаюсь запустить тот же код в многопоточной среде, это дает плохие результаты.