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);