From e9569d033bf32f3f81dc0082dde9ed882445ba57 Mon Sep 17 00:00:00 2001 From: Heath Thomann Date: Thu, 17 May 2012 23:01:47 +0000 Subject: [PATCH] OPENJPA-2198: Applied Helen Xu's patch for 1.0.x git-svn-id: https://svn.apache.org/repos/asf/openjpa/branches/1.0.x@1339917 13f79535-47bb-0310-9956-ffa450edef68 --- .../meta/strats/AbstractVersionStrategy.java | 2 +- .../jdbc/TestOptimisticDisable.java | 49 +++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/TestOptimisticDisable.java diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.java index 58bf9ad75..b52cddc33 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/AbstractVersionStrategy.java @@ -63,7 +63,7 @@ public abstract class AbstractVersionStrategy public boolean checkVersion(OpenJPAStateManager sm, JDBCStore store, boolean updateVersion) throws SQLException { - return false; + return !updateVersion; } public int compareVersion(Object v1, Object v2) { diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/TestOptimisticDisable.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/TestOptimisticDisable.java new file mode 100644 index 000000000..d9cce5c51 --- /dev/null +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/TestOptimisticDisable.java @@ -0,0 +1,49 @@ +package org.apache.openjpa.persistence.jdbc; + +import java.util.List; + +import javax.persistence.EntityManager; +import javax.persistence.EntityTransaction; +import javax.persistence.Query; + +import org.apache.openjpa.persistence.simple.Person; +import org.apache.openjpa.persistence.test.SQLListenerTestCase; + +public class TestOptimisticDisable extends SQLListenerTestCase{ + + public void setUp() { + setUp(Person.class, CLEAR_TABLES, + "openjpa.jdbc.TransactionIsolation", "repeatable-read", + "openjpa.Optimistic", "false"); + } + + public void testQuery(){ + Person p1 = new Person(); + p1.setId(102); + p1.setSurname("TestName"); + Person p2 = new Person(); + p2.setId(103); + p2.setSurname("TestName"); + + EntityManager em = emf.createEntityManager(); + + em.getTransaction().begin(); + em.persist(p1); + em.persist(p2); + em.getTransaction().commit(); + em.close(); + + em = emf.createEntityManager(); + final EntityTransaction tx = em.getTransaction(); + tx.begin(); + final Query q = em.createQuery("SELECT person FROM Person person WHERE person.surname = :surname"); + q.setParameter("surname", "TestName"); + final List persons = q.getResultList(); + tx.commit(); + em.close(); + assertEquals(2, persons.size()); + } + + + +}