我想编写一个单元测试来验证乐观锁定是否正确设置(使用Spring和Hibernate).
我想让测试类扩展Spring AbstractTransactionalJUnit4SpringContextTests
.
我想要最终得到的是这样的方法:
@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");
}
Run Code Online (Sandbox Code Playgroud)
此测试失败.你推荐什么作为最佳实践?
我试图这样做的原因是我想将其转移version
到客户端(使用DTO).我想证明,当DTO被发送回服务器并与新加载的实体合并时,如果在此期间其他人更新了实体,则保存该实体将失败.