mirror of https://github.com/apache/openjpa.git
OPENJPA-1638: Add new testcase.
git-svn-id: https://svn.apache.org/repos/asf/openjpa/trunk@936445 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
58f33c2119
commit
0cfb656770
|
@ -19,8 +19,13 @@
|
||||||
package org.apache.openjpa.persistence.lockmgr;
|
package org.apache.openjpa.persistence.lockmgr;
|
||||||
|
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
|
import javax.persistence.LockModeType;
|
||||||
import javax.persistence.Query;
|
import javax.persistence.Query;
|
||||||
|
|
||||||
|
import org.apache.openjpa.persistence.FetchPlan;
|
||||||
|
import org.apache.openjpa.persistence.OpenJPAEntityManager;
|
||||||
|
import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI;
|
||||||
|
import org.apache.openjpa.persistence.OpenJPAQuery;
|
||||||
import org.apache.openjpa.persistence.TransactionRequiredException;
|
import org.apache.openjpa.persistence.TransactionRequiredException;
|
||||||
import org.apache.openjpa.persistence.test.AllowFailure;
|
import org.apache.openjpa.persistence.test.AllowFailure;
|
||||||
import org.apache.openjpa.persistence.test.SQLListenerTestCase;
|
import org.apache.openjpa.persistence.test.SQLListenerTestCase;
|
||||||
|
@ -57,8 +62,7 @@ public class TestNamedQueryLockMode extends SQLListenerTestCase {
|
||||||
EntityManager em = emf.createEntityManager();
|
EntityManager em = emf.createEntityManager();
|
||||||
// execute without a transaction
|
// execute without a transaction
|
||||||
try {
|
try {
|
||||||
em.createNamedQuery("findEmployeeByIdWithLock").setParameter("id",
|
em.createNamedQuery("findEmployeeByIdWithLock").setParameter("id", 0).getResultList();
|
||||||
0).getResultList();
|
|
||||||
fail("Expected " + TransactionRequiredException.class.getName());
|
fail("Expected " + TransactionRequiredException.class.getName());
|
||||||
} catch (TransactionRequiredException e) {
|
} catch (TransactionRequiredException e) {
|
||||||
// Expected
|
// Expected
|
||||||
|
@ -70,6 +74,29 @@ public class TestNamedQueryLockMode extends SQLListenerTestCase {
|
||||||
em.getTransaction().begin();
|
em.getTransaction().begin();
|
||||||
assertClausePresentInSQL("FOR UPDATE", em.createNamedQuery("findEmployeeById").setParameter("id", 0));
|
assertClausePresentInSQL("FOR UPDATE", em.createNamedQuery("findEmployeeById").setParameter("id", 0));
|
||||||
assertClausePresentInSQL("FOR UPDATE", em.createNamedQuery("findEmployeeById").setParameter("id", 0));
|
assertClausePresentInSQL("FOR UPDATE", em.createNamedQuery("findEmployeeById").setParameter("id", 0));
|
||||||
|
|
||||||
|
OpenJPAEntityManager oem = (OpenJPAEntityManager)em;
|
||||||
|
OpenJPAQuery<?> q = oem.createNamedQuery("findEmployeeById").setParameter("id", 0);
|
||||||
|
FetchPlan fp = q.getFetchPlan();
|
||||||
|
fp.setReadLockMode(LockModeType.NONE);
|
||||||
|
|
||||||
|
em.getTransaction().commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testForUpdateClauseAbsentInQueryWithFetchPlanNoneLockMode() {
|
||||||
|
OpenJPAEntityManagerSPI em = emf.createEntityManager();
|
||||||
|
em.getTransaction().begin();
|
||||||
|
|
||||||
|
OpenJPAQuery<?> q = em.createNamedQuery("findEmployeeById").setParameter("id", 0);
|
||||||
|
FetchPlan fp = q.getFetchPlan();
|
||||||
|
fp.setReadLockMode(LockModeType.NONE);
|
||||||
|
assertClauseAbsentInSQL("FOR UPDATE", q);
|
||||||
|
|
||||||
|
q = em.createNamedQuery("findEmployeeByIdWithNoLock").setParameter("id", 0);
|
||||||
|
fp = q.getFetchPlan();
|
||||||
|
fp.setReadLockMode(LockModeType.NONE);
|
||||||
|
assertClauseAbsentInSQL("FOR UPDATE", q);
|
||||||
|
|
||||||
em.getTransaction().commit();
|
em.getTransaction().commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue