Я пытаюсь понять пессимистический механизм блокировки в Hibernate (Over MySQL DB).Hibernate Пессимистический режим блокировки
Я попытался запустить следующий пример:
public static void main(String[] args) {
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
Student student = null;
Student studentTwo = null;
try {
session.beginTransaction();
student = (Student) session.get(Student.class, 1, LockMode.PESSIMISTIC_WRITE);
//I was hoping this line would thrown an error
studentTwo = (Student) session.get(Student.class, 1, LockMode.PESSIMISTIC_WRITE);
System.out.println(student.getName());
System.out.println(studentTwo.getName());
student.setName("John Doe");
session.getTransaction().commit();
session.close();
}catch(HibernateException ex){
}
}
Но вместо того, чтобы давать мне ошибку он просто выполняет отлично. Есть какая-то концепция, которую я неправильно понял. Это нормальное поведение?
Я смог протестировать Оптимистичную блокировку отлично, поэтому для пессимистической блокировки есть некоторые недоразумения в концепции или есть что-то, чего не хватает моему коду.
Хорошо, позвольте мне попробовать. Большое спасибо. –
Да, попытка получить доступ с использованием двух сеансов сделала трюк. Большое спасибо за объяснение. –