Hey devs --

I'm trying to prototype a auditing feature that would read one or two of the less-common (terribly uncommon?) portal events from the statsDb. The stats persistence uses hibernate, so I figured I could follow the established examples and best practices for using hibernate in the portal. But I'm encountering an unexpected form of obstacle -- I'm sensing that perhaps that the hibernate setup for stats precludes reading the entities back out of the database, which is a pity.

I'm getting "TransientObjectException" (stack trace posted at end). I'm not a hibernate guru, but my best guess is that the PortalEvent's relationship with the EventType class (pseudo-enum) is severed from the database-backed object, and hibernate refuses to give me back PortalEvents for that reason.

Can anyone give me some tips for working with persisted PortalEvents?

thanks,

drew

*****

org.hibernate.TransientObjectException: object references an unsaved transient 
instance - save the transient instance before flushing: 
org.jasig.portal.events.EventType
        
org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:219)
        org.hibernate.type.EntityType.getIdentifier(EntityType.java:397)
        org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:87)
        
org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:38)
        
org.hibernate.loader.hql.QueryLoader.bindParameterValues(QueryLoader.java:491)
        org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1563)
        org.hibernate.loader.Loader.doQuery(Loader.java:673)
        
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
        org.hibernate.loader.Loader.doList(Loader.java:2213)
        org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2136)
        org.hibernate.loader.Loader.list(Loader.java:2096)
        org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
        
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
        
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
        org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
        org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
        org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:65)
        
org.jasig.portal.events.handlers.db.JpaPortalEventStore.getPortalEvents(JpaPortalEventStore.java:159)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        java.lang.reflect.Method.invoke(Method.java:597)
        
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
        
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
        
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
        
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
        
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
        
org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:54)
        
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
        
org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:77)
        
org.jasig.portal.portlet.dao.jpa.ThreadContextClassLoaderAspect.doThreadContextClassLoaderUpdate(ThreadContextClassLoaderAspect.java:51)
        sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)
        
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        java.lang.reflect.Method.invoke(Method.java:597)
        
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)
        
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)
        
org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:64)
        
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
        
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
        
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
        
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
        $Proxy59.getPortalEvents(Unknown Source)
        
org.jasig.portal.rest.StatsLayoutModificationsController.getEventCounts(StatsLayoutModificationsController.java:116)
        
org.jasig.portal.rest.StatsLayoutModificationsController.handleRequestInternal(StatsLayoutModificationsController.java:97)
        
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
        
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
        
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
        
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
        
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
        
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        
org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:112)
        
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)



--
You are currently subscribed to [email protected] as: 
[email protected]
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/uportal-dev

Reply via email to