【发布时间】:2010-09-10 14:27:02
【问题描述】:
我正在使用 Hibernate 3.5.5.Final 和 JPA2
如何制作测试用例来测试休眠锁是否工作?
我写了这个,但是在当前的hibernate版本中似乎没有通过测试(在以前的版本中可以正常工作)
@Test(expected=OptimisticLockException.class)
public void testLock() {
EntityManager em = getEntityManager();
Foo foo1 = fooDAO.findById(1);
em.lock(foo1, LockModeType.WRITE);
foo1.setCode("code3");
em.flush();
}
编辑:
@Pascal:这就是你在第二种情况下的意思?
@Test(expected=OptimisticLockException.class)
public void testLock() {
EntityManager em = getEntityManager();
em.getTransaction().begin();
Foo foo1 = fooDAO.findById(1);
em.lock(foo1, LockModeType.WRITE);
fooDAO.createHibernateQuery("update Foo set version=version+1 where id = 1");
foo1.setCode("code3");
em.flush();
}
谢谢
【问题讨论】:
-
在什么情况下它不起作用?错误是什么?获取一个对象并验证它是一个适当的测试。
-
我没有收到 OptimisticLockException
标签: java hibernate orm locking jpa-2.0