I fixed it.

the solution is explained on my previous post:
https://groups.google.com/forum/?hl=de&fromgroups#!topic/google-web-toolkit/p9p4_r2Gv4U

Best regards:

Nermin 

Am Dienstag, 4. Juni 2013 16:24:32 UTC+2 schrieb [email protected]:
>
> Hello Group,
>
> I have a "probably simple" problem with my application which I am 
> obviously not able to solve.
>
> Two Classes: CompanyX, TradesmanX
> CompanyX stays in a OneToOne Connection with TradesmanX
>
> I use @PrePersist on Tradesman in order to pre-set some fields (e.g. Has 
> password or set Account creation date) before the Object gets persisted in 
> the DB.
>
> My code is available here:
> https://dl.dropboxusercontent.com/u/2983671/JPA_Problem/JPA_Problem.zip
>
> @Entity
> public class CompanyX {
> ...
>     @OneToOne(cascade=CascadeType.ALL)
>     private TradesmanX adminUser;
> }
>
>
> @Entity
> public class TradesmanX {
> ...
>     @PrePersist
>     public void myMethod(){
>         System.out.println("Pre Persist");
>         this.setFirstName("USER_XXXXX");
>     }
> ...
> }
>
> //Here is how I persist them within my test servlet:
>
>     private void testPersistenceTwo() {
>
>         CompanyX company = new CompanyX();
>         company.setName("my Comp");
>
>         TradesmanX user = new TradesmanX();
>         user.setFirstName("Test_FName");
>         user.setLastName("Test_Lname");
>             
>         company.setAdminUser(user);
>         company.persist();
>     }
>
>
> The ERROR l am facing looks like follows:
>
> javax.persistence.PersistenceException: Detected attempt to establish 
> CompanyX(no-id-yet) as the parent of TradesmanX(7) but the entity 
> identified by TradesmanX(7) has already been persisted without a parent.  A 
> parent cannot be established or changed once an object has been persisted.
>     at 
> org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
>     at 
> org.datanucleus.api.jpa.JPAEntityManager.close(JPAEntityManager.java:197)
>     at com.emajstor.server.persistence.CompanyX.persist(CompanyX.java:42)
>     at 
> com.emajstor.server.test.MyTestServlet.testPersistenceTwo(MyTestServlet.java:88)
>     at com.emajstor.server.test.MyTestServlet.doGet(MyTestServlet.java:41)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>     at 
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
>     at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
>     at 
> com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)
>     at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>     at 
> com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:123)
>     at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>     at 
> com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
>     at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>     at 
> com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)
>     at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>     at 
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
>     at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>     at 
> com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125)
>     at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>     at 
> com.google.appengine.tools.development.DevAppServerServersFilter.doDirectRequest(DevAppServerServersFilter.java:369)
>     at 
> com.google.appengine.tools.development.DevAppServerServersFilter.doDirectServerRequest(DevAppServerServersFilter.java:352)
>     at 
> com.google.appengine.tools.development.DevAppServerServersFilter.doFilter(DevAppServerServersFilter.java:115)
>     at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>     at 
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
>     at 
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>     at 
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>     at 
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>     at 
> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
>     at 
> com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:97)
>     at 
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>     at 
> com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:438)
>     at 
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>     at org.mortbay.jetty.Server.handle(Server.java:326)
>     at 
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>     at 
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
>     at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
>     at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
>     at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>     at 
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>     at 
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
>
>
> It works fine without @PrePersist. With @PrePersist, it throws the error 
> above.
>
> I am using GWT 2.5 on Datanucleus. 
> JSR 303 is turned on.
>
> Can anyone help me with this issue?
>
> Thank you in advance:
>
> Nermin
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-appengine?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to