You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2007/08/25 15:47:55 UTC
svn commit: r569668 - in
/cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa:
JpaTransaction.java ResourceLocalEntityManager.java
Author: aadamchik
Date: Sat Aug 25 06:47:54 2007
New Revision: 569668
URL: http://svn.apache.org/viewvc?rev=569668&view=rev
Log:
CAY-853 JPA EntityTransaction must allow multiple begin/commit cycles
Modified:
cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa/JpaTransaction.java
cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa/ResourceLocalEntityManager.java
Modified: cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa/JpaTransaction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa/JpaTransaction.java?rev=569668&r1=569667&r2=569668&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa/JpaTransaction.java (original)
+++ cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa/JpaTransaction.java Sat Aug 25 06:47:54 2007
@@ -37,9 +37,16 @@
protected Transaction transaction;
protected boolean rollbackOnly;
- public JpaTransaction(Transaction transaction, EntityManager entityManager) {
+ public JpaTransaction(EntityManager entityManager) {
this.entityManager = entityManager;
- this.transaction = transaction;
+ reset();
+ }
+
+ /**
+ * Creates a new internal Cayenne transaction.
+ */
+ protected void reset() {
+ this.transaction = Transaction.internalTransaction(null);
}
/**
@@ -76,6 +83,8 @@
catch (CayenneException e) {
throw new PersistenceException(e.getMessage(), e);
}
+
+ reset();
}
/**
@@ -98,6 +107,8 @@
catch (CayenneException e) {
throw new PersistenceException(e.getMessage(), e);
}
+
+ reset();
}
/**
Modified: cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa/ResourceLocalEntityManager.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa/ResourceLocalEntityManager.java?rev=569668&r1=569667&r2=569668&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa/ResourceLocalEntityManager.java (original)
+++ cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa/ResourceLocalEntityManager.java Sat Aug 25 06:47:54 2007
@@ -33,7 +33,6 @@
import org.apache.cayenne.ObjectContext;
import org.apache.cayenne.PersistenceState;
import org.apache.cayenne.Persistent;
-import org.apache.cayenne.access.Transaction;
import org.apache.cayenne.query.EJBQLQuery;
public class ResourceLocalEntityManager implements EntityManager, CayenneEntityManager {
@@ -348,9 +347,7 @@
*/
public EntityTransaction getTransaction() { // note - allowed to be called on a closed
if (transaction == null) {
- this.transaction = new JpaTransaction(
- Transaction.internalTransaction(null),
- this);
+ this.transaction = new JpaTransaction(this);
}
return transaction;