mirror of https://github.com/apache/openjpa.git
OPENJPA-1602: check in test case from trunk r931628 by Fay
git-svn-id: https://svn.apache.org/repos/asf/openjpa/branches/2.0.x@931756 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
0cbc402296
commit
c384f39d27
|
@ -334,6 +334,31 @@ public class TestPessimisticLocks extends SQLListenerTestCase {
|
||||||
em2.close();
|
em2.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test multiple execution of the same query with pessimistic lock.
|
||||||
|
*/
|
||||||
|
public void testRepeatedQueryWithPessimisticLocks() {
|
||||||
|
EntityManager em = emf.createEntityManager();
|
||||||
|
resetSQL();
|
||||||
|
em.getTransaction().begin();
|
||||||
|
String jpql = "select e.firstName from Employee e where e.id = 1";
|
||||||
|
Query q1 = em.createQuery(jpql);
|
||||||
|
q1.setLockMode(LockModeType.PESSIMISTIC_WRITE);
|
||||||
|
String firstName1 = (String) q1.getSingleResult();
|
||||||
|
//Expected sql for Derby is:
|
||||||
|
//SELECT t0.firstName FROM Employee t0 WHERE (t0.id = CAST(? AS BIGINT)) FOR UPDATE WITH RR
|
||||||
|
String SQL1 = toString(sql);
|
||||||
|
|
||||||
|
// run the second time
|
||||||
|
resetSQL();
|
||||||
|
Query q2 = em.createQuery(jpql);
|
||||||
|
q2.setLockMode(LockModeType.PESSIMISTIC_WRITE);
|
||||||
|
String firstName2 = (String) q2.getSingleResult();
|
||||||
|
String SQL2 = toString(sql);
|
||||||
|
assertEquals(SQL1, SQL2);
|
||||||
|
em.getTransaction().commit();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Assert that an exception of proper type has been thrown. Also checks that
|
* Assert that an exception of proper type has been thrown. Also checks that
|
||||||
* that the exception has populated the failed object.
|
* that the exception has populated the failed object.
|
||||||
|
|
Loading…
Reference in New Issue