shouldn't one merge the entity first ? so that it's managed/attached.

em.remove(em.merge(this));

regards

2011/3/7 SrArcos <[email protected]>:
> Hello all, I don't know if my question must be here, but I need a help
> with this problem and I don't know exactly where it can being solved.
>
> I'm trying to remove an entity from the server: ObjectEntity.
>
> this is the method in the entity:
>
> [code]
>        public void remove() {
>                EntityManager em = null;
>                EntityTransaction tx = null;
>                try {
>                        em = Manager.getEMF().createEntityManager();
>                        tx = em.getTransaction();
>                        tx.begin();
>
>                        em.remove(this);
>
>                        tx.commit();
>
>                } catch (Exception e) {
>                        e.printStackTrace();
>                        if (tx != null) {
>                                tx.rollback();
>                        }
>                } finally {
>                        if (em != null) {
>                                em.close();
>                        }
>                }
>        }
> [/code]
>
> and this is the method to call the removal request:
>
> [code]
> public void doDelete(Record lgr) {
>                final Long id = Long.valueOf(lgr.getAttribute("id"));
>
>                ObjectEntityRequest cRequest =
> RFService.getRF().getObjectEntityRequest();
>                cRequest.findObjectEntity(id).fire(new 
> Receiver<ObjectEntityProxy>()
> {
>                        @Override
>                        public void onSuccess(ObjectEntityProxy response) {
>                                Request<Void> del =
>
> RFService.getRF().getObjectEntityRequest()
>                                             .remove()
>                                                .using(aborrar);
>                                del.fire(new Receiver<Void>() {
>                                        @Override
>                                        public void onSuccess(Void response) {
>                                                Window.alert("ObjectEntity 
> borrado con &eacute;xito");
>
>                                        }
>                                        @Override
>                                        public void onFailure(ServerFailure 
> error) {
>                                                Window.alert("Error al 
> eliminar el ObjectEntity");
>                                        }
>                                });
>                        }
>                });
>        }
> [/code]
>
> And the server error I has is this:
>
> java.lang.IllegalArgumentException: Removing a detached instance
> org.mycompany.server.entities.ObjectEntity#400
>        at
> org.hibernate.ejb.event.EJB3DeleteEventListener.performDetachedEntityDeletionCheck(EJB3DeleteEventListener.java:
> 65)
>        at
> org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:
> 107)
>        at
> org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:
> 73)
>        at org.hibernate.impl.SessionImpl.fireDelete(SessionImpl.java:956)
>        at org.hibernate.impl.SessionImpl.delete(SessionImpl.java:934)
>        at
> org.hibernate.ejb.AbstractEntityManagerImpl.remove(AbstractEntityManagerImpl.java:
> 702)
>        at
> org.mycompany.server.entities.ObjectEntity.remove(ObjectEntity.java:
> 214)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> 57)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
> 43)
>        at java.lang.reflect.Method.invoke(Method.java:616)
>        at
> com.google.gwt.requestfactory.server.ReflectiveServiceLayer.invoke(ReflectiveServiceLayer.java:
> 164)
>        at
> com.google.gwt.requestfactory.server.ServiceLayerDecorator.invoke(ServiceLayerDecorator.java:
> 89)
>        at
> com.google.gwt.requestfactory.server.ServiceLayerDecorator.invoke(ServiceLayerDecorator.java:
> 89)
>        at
> com.google.gwt.requestfactory.server.SimpleRequestProcessor.processInvocationMessages(SimpleRequestProcessor.java:
> 440)
>        at
> com.google.gwt.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:
> 218)
>        at
> com.google.gwt.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:
> 125)
>        at
> com.google.gwt.requestfactory.server.RequestFactoryServlet.doPost(RequestFactoryServlet.java:
> 118)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> 487)
>        at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter(ServletHandler.java:1097)
>        at org.springframework.security.util.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:359)
>        at
> org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:
> 109)
>        at
> org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:
> 83)
>        at org.springframework.security.util.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>        at
> org.springframework.security.ui.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:
> 67)
>        at
> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
> 53)
>        at org.springframework.security.util.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>        at
> org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:
> 101)
>        at
> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
> 53)
>        at org.springframework.security.util.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>        at
> org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:
> 105)
>        at
> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
> 53)
>        at org.springframework.security.util.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>        at
> org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:
> 116)
>        at
> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
> 53)
>        at org.springframework.security.util.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>        at
> org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:
> 91)
>        at
> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
> 53)
>        at org.springframework.security.util.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>        at
> org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:
> 173)
>        at
> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
> 53)
>        at org.springframework.security.util.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>        at
> org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:
> 271)
>        at
> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
> 53)
>        at org.springframework.security.util.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>        at
> org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:
> 89)
>        at
> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
> 53)
>        at org.springframework.security.util.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>        at
> org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:
> 235)
>        at
> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
> 53)
>        at org.springframework.security.util.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>        at
> org.springframework.security.concurrent.ConcurrentSessionFilter.doFilterHttp(ConcurrentSessionFilter.java:
> 99)
>        at
> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:
> 53)
>        at org.springframework.security.util.FilterChainProxy
> $VirtualFilterChain.doFilter(FilterChainProxy.java:371)
>        at
> org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:
> 174)
>        at
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:
> 236)
>        at
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:
> 167)
>        at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter(ServletHandler.java:1088)
>        at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
> 360)
>        at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
> 216)
>        at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
> 181)
>        at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
> 729)
>        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
> 405)
>        at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
> 152)
>        at
> org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:
> 49)
>        at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
> 152)
>        at org.mortbay.jetty.Server.handle(Server.java:324)
>        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
> 505)
>        at org.mortbay.jetty.HttpConnection
> $RequestHandler.content(HttpConnection.java:843)
>        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
>        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
>        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
>        at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
> 395)
>        at org.mortbay.thread.QueuedThreadPool
> $PoolThread.run(QueuedThreadPool.java:488)
>
> Can someone help me, please?
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google Web Toolkit" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/google-web-toolkit?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to