Я хотел бы написать модульный тест, чтобы проверить, правильно ли настроена оптимистическая блокировка (с использованием Spring и Hibernate).
Я бы хотел, чтобы тестовый класс расширил AbstractTransactionalJUnit4SpringContextTests
Spring.
То, что я хочу закончить, это метод, подобный этому:
@Test (expected = StaleObjectStateException.class)
public void testOptimisticLocking() {
A a = getCurrentSession().load(A.class, 1);
a.setVersion(a.getVersion()-1);
getCurrentSession().saveOrUpdate(a);
getCurrentSession().flush();
fail("Optimistic locking does not work");
}
Этот тест не пройден. Что вы рекомендуете в качестве лучшей практики?
Причина, по которой я пытаюсь это сделать, заключается в том, что я хочу передать version
клиенту (используя DTO). Я хочу доказать, что, когда DTO отправляется обратно на сервер и объединяется с недавно загруженной сущностью, сохранение этой сущности завершится неудачей, если за это время кто-то другой обновил ее.