-Eric
On 3/15/11 7:41 PM, Drew Wills wrote:
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)
smime.p7s
Description: S/MIME Cryptographic Signature
