mirror of
https://github.com/apache/openjpa.git
synced 2025-03-08 17:49:18 +00:00
Fix test cases running in DB2 due to 1) dict.forUpdateClause must be obtained after emf is created because specific dictionary may override the value of this attribute, 2) The forUpdateClause in DB2 is LockMode type dependent, (i.e. WITH RR/RS) therefore can not depends on this attribute for positive test case comparison, negative test ok.
git-svn-id: https://svn.apache.org/repos/asf/openjpa/branches/2.1.x@1073527 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
56d81e18f8
commit
7eae35f88b
@ -34,7 +34,7 @@ import javax.persistence.Version;
|
||||
@NamedQuery(name = "findEmployeeById",
|
||||
query = "SELECT c FROM LockEmployee c WHERE c.id = :id"),
|
||||
@NamedQuery(name = "findEmployeeByIdWithLock",
|
||||
query = "SELECT c FROM LockEmployee c WHERE c.id = :id", lockMode = LockModeType.PESSIMISTIC_READ),
|
||||
query = "SELECT c FROM LockEmployee c WHERE c.id = :id", lockMode = LockModeType.PESSIMISTIC_WRITE),
|
||||
@NamedQuery(name = "findEmployeeByIdWithNoLock",
|
||||
query = "SELECT c FROM LockEmployee c WHERE c.id = :id", lockMode = LockModeType.NONE) })
|
||||
@Entity
|
||||
|
@ -44,12 +44,12 @@ public class TestNamedQueryLockMode extends SQLListenerTestCase {
|
||||
"openjpa.LockManager", "pessimistic",
|
||||
"openjpa.Optimistic", "false"
|
||||
);
|
||||
lockClause = getForUpdateClause();
|
||||
}
|
||||
|
||||
public void testForUpdateClausePresentInNamedQueryWithLockMode() {
|
||||
EntityManager em = emf.createEntityManager();
|
||||
em.getTransaction().begin();
|
||||
lockClause = getForUpdateClause();
|
||||
assertClausePresentInSQL(lockClause, em.createNamedQuery("findEmployeeByIdWithLock").setParameter("id", 0));
|
||||
em.getTransaction().rollback();
|
||||
em.getTransaction().begin();
|
||||
@ -75,8 +75,9 @@ public class TestNamedQueryLockMode extends SQLListenerTestCase {
|
||||
public void testForUpdateClausePresentInQueryWithDefault() {
|
||||
EntityManager em = emf.createEntityManager();
|
||||
em.getTransaction().begin();
|
||||
assertClausePresentInSQL(lockClause, em.createNamedQuery("findEmployeeById").setParameter("id", 0));
|
||||
assertClausePresentInSQL(lockClause, em.createNamedQuery("findEmployeeById").setParameter("id", 0));
|
||||
lockClause = getForUpdateClause();
|
||||
assertClauseAbsentInSQL(lockClause, em.createNamedQuery("findEmployeeById").setParameter("id", 0));
|
||||
assertClauseAbsentInSQL(lockClause, em.createNamedQuery("findEmployeeById").setParameter("id", 0));
|
||||
|
||||
OpenJPAEntityManager oem = (OpenJPAEntityManager)em;
|
||||
OpenJPAQuery<?> q = oem.createNamedQuery("findEmployeeById").setParameter("id", 0);
|
||||
@ -88,8 +89,8 @@ public class TestNamedQueryLockMode extends SQLListenerTestCase {
|
||||
|
||||
public void testForUpdateClauseAbsentInQueryWithFetchPlanNoneLockMode() {
|
||||
OpenJPAEntityManagerSPI em = emf.createEntityManager();
|
||||
em.getTransaction().begin();
|
||||
|
||||
em.getTransaction().begin();
|
||||
lockClause = getForUpdateClause();
|
||||
OpenJPAQuery<?> q = em.createNamedQuery("findEmployeeById").setParameter("id", 0);
|
||||
FetchPlan fp = q.getFetchPlan();
|
||||
fp.setReadLockMode(LockModeType.NONE);
|
||||
@ -107,6 +108,7 @@ public class TestNamedQueryLockMode extends SQLListenerTestCase {
|
||||
public void testForUpdateClauseAbsentInQueryWithExplictNoLock() {
|
||||
EntityManager em = emf.createEntityManager();
|
||||
em.getTransaction().begin();
|
||||
lockClause = getForUpdateClause();
|
||||
assertClauseAbsentInSQL(lockClause, em.createNamedQuery("findEmployeeByIdWithNoLock").setParameter("id", 0));
|
||||
assertClauseAbsentInSQL(lockClause, em.createNamedQuery("findEmployeeByIdWithNoLock").setParameter("id", 0));
|
||||
em.getTransaction().commit();
|
||||
|
@ -39,7 +39,6 @@ public class TestOptimisticNamedQueryLockMode extends SQLListenerTestCase {
|
||||
super.setUp(CLEAR_TABLES, LockEmployee.class,
|
||||
"openjpa.LockManager", "pessimistic"
|
||||
);
|
||||
lockClause = getForUpdateClause();
|
||||
}
|
||||
|
||||
/*
|
||||
@ -47,6 +46,7 @@ public class TestOptimisticNamedQueryLockMode extends SQLListenerTestCase {
|
||||
*/
|
||||
public void testForUpdateClausePresentInNamedQueryWithLockMode() {
|
||||
EntityManager em = emf.createEntityManager();
|
||||
lockClause = getForUpdateClause();
|
||||
em.getTransaction().begin();
|
||||
assertClausePresentInSQL(lockClause, em.createNamedQuery("findEmployeeByIdWithLock").setParameter("id", 0));
|
||||
em.getTransaction().rollback();
|
||||
@ -65,6 +65,7 @@ public class TestOptimisticNamedQueryLockMode extends SQLListenerTestCase {
|
||||
public void testForUpdateClausePresentInQueryWithDefault() {
|
||||
EntityManager em = emf.createEntityManager();
|
||||
em.getTransaction().begin();
|
||||
lockClause = getForUpdateClause();
|
||||
assertClauseAbsentInSQL(lockClause, em.createNamedQuery("findEmployeeById").setParameter("id", 0));
|
||||
assertClauseAbsentInSQL(lockClause, em.createNamedQuery("findEmployeeById").setParameter("id", 0));
|
||||
|
||||
@ -83,7 +84,7 @@ public class TestOptimisticNamedQueryLockMode extends SQLListenerTestCase {
|
||||
public void testForUpdateClauseAbsentInQueryWithFetchPlanNoneLockMode() {
|
||||
OpenJPAEntityManagerSPI em = emf.createEntityManager();
|
||||
em.getTransaction().begin();
|
||||
|
||||
lockClause = getForUpdateClause();
|
||||
OpenJPAQuery<?> q = em.createNamedQuery("findEmployeeById").setParameter("id", 0);
|
||||
FetchPlan fp = q.getFetchPlan();
|
||||
fp.setReadLockMode(LockModeType.NONE);
|
||||
@ -104,6 +105,7 @@ public class TestOptimisticNamedQueryLockMode extends SQLListenerTestCase {
|
||||
public void testForUpdateClauseAbsentInQueryWithExplictNoLock() {
|
||||
EntityManager em = emf.createEntityManager();
|
||||
em.getTransaction().begin();
|
||||
lockClause = getForUpdateClause();
|
||||
assertClauseAbsentInSQL(lockClause, em.createNamedQuery("findEmployeeByIdWithNoLock").setParameter("id", 0));
|
||||
assertClauseAbsentInSQL(lockClause, em.createNamedQuery("findEmployeeByIdWithNoLock").setParameter("id", 0));
|
||||
em.getTransaction().commit();
|
||||
|
Loading…
x
Reference in New Issue
Block a user