O thread de sessão do Hibernate é seguro?

Eu preciso saber se a sessão do Hibernate é thread thread safe ou não. Mas é óbvio que uma nova sessão é anexada a cada thread para execução. Mas minha pergunta é se, em um thread, atualizei algum valor de uma entidade, isso será refletido em outro thread durante a mesma execução em tempo?

Meu problema é quando aciono a atualização de dois threads sequencialmente, o valor é atualizado corretamente, mas quando aciono a atualização quase completamente, ela falha.

por exemplo. estágio atual da tabela.

  ID      NAME      MARKS
------- --------- --------
  1       John       54

Eu estou tentando fazer o seguinte:

Student student = session.load(Student.class, 1);
student.setMarks(student.getMarks() + 1);
session.update(student);
session.close();

Quando tento executar o código acima no loop, digamos 10, o valor de "marks" na tabela "student" é atualizado corretamente, ou seja, o valor é atualizado para 64, o que é adequado.

Mas quando tento executar o mesmo código no ambiente de threads, ele apresenta resultados ruins.

questionAnswers(5)

yourAnswerToTheQuestion