Author: mfranklin
Date: Mon Jun 25 17:09:52 2012
New Revision: 1353664

URL: http://svn.apache.org/viewvc?rev=1353664&view=rev
Log:
Fixed issue with referential integrity error when creating profile page. 
(RAVE-625)

Modified:
    
rave/branches/model_interfaces/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java

Modified: 
rave/branches/model_interfaces/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model_interfaces/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java?rev=1353664&r1=1353663&r2=1353664&view=diff
==============================================================================
--- 
rave/branches/model_interfaces/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java
 (original)
+++ 
rave/branches/model_interfaces/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java
 Mon Jun 25 17:09:52 2012
@@ -132,6 +132,9 @@ public class JpaPageRepository implement
 
         p.setPageLayout(pt.getPageLayout());
         p.setRegions(convertRegions(pt.getPageTemplateRegions(), p));
+        //Workaround for an issue with OpenJPA where the transaction is 
applied in order of save methods and if
+        //the parent page doesn't have an id yet, it will throw a referential 
integrity error
+        p = save(p);
         p.setSubPages(convertPages(pt.getSubPageTemplates(), p));
         p = save(p);
         return p;
@@ -206,6 +209,9 @@ public class JpaPageRepository implement
             members.add(pageUser);
             lPage.setMembers(members);
             // recursive call
+            //Workaround for an issue with OpenJPA where the transaction is 
applied in order of save methods and if
+            //the parent page doesn't have an id yet, it will throw a 
referential integrity error
+            lPage = save(lPage);
             lPage.setSubPages((pt.getSubPageTemplates() == null || 
pt.getSubPageTemplates().isEmpty()) ? null : 
convertPages(pt.getSubPageTemplates(), lPage));
             lPage = save(lPage);
             pages.add(lPage);


Reply via email to