Я новичок в блокировке JPA 2.0, поэтому, возможно, я что-то упустил.
Используя NetBeans, я попытался отладить Сессионный компонент без сохранения состояния.Я попытался переключиться между двумя потоками, чтобы изучить концепцию:
em.lock(entity, LockModeType.PESSIMISTIC_WRITE);
em.persist(entity);
try {
em.flush();
} catch (Exception e) {
System.out.println("Already Locked!");
}
Я позволил первому процессу завершиться
em.flush ();
(без исключений).Затем я переключился на второй процесс.Удивительно - он сделал паузу после первой строки , а продолжил только после того, как первый процесс вышел из функции.
Примечание: Все это работало, как и ожидалось, с LockModeType.OPTIMISTIC.
Это нормальное поведение?я что-то пропустил? здесь кажется, что он ведет себя по-другому.
Спасибо,
Дэнни