原博文网址:http://blog.csdn.net/iamwangch/article/details/8055818
出现异常:
- java.lang.NullPointerException
- at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)
- at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:3121)
- at org.hibernate.event.def.DefaultLoadEventListener.createProxyIfNecessary(DefaultLoadEventListener.java:232)
- at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:173)
- at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:87)
- at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:862)
- at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:830)
- at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:266)
- at org.hibernate.type.EntityType.resolve(EntityType.java:303)
- at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:116)
- at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:842)
- at org.hibernate.loader.Loader.doQuery(Loader.java:717)
- at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
- at org.hibernate.loader.Loader.loadEntity(Loader.java:1785)
- at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:47)
- at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:41)
- at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:2730)
- at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:365)
- at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:346)
- at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:123)
- at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:161)
- at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:87)
- at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:862)
- at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:830)
- at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:266)
- at org.hibernate.type.EntityType.resolve(EntityType.java:303)
- at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:116)
- at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:842)
- at org.hibernate.loader.Loader.doQuery(Loader.java:717)
- at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
- at org.hibernate.loader.Loader.doList(Loader.java:2145)
- at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
- at org.hibernate.loader.Loader.list(Loader.java:2024)
- at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)
- at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308)
- at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153)
- at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106)
- at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
- at org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:849)
- at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
- at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:840)
- at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:832)
- at com.blog.DAO.Impl.PassageDAOImpl.findByUserInfo(PassageDAOImpl.java:220)
- at com.blog.Services.Impl.PassageServiceImpl.ListPassageListByUserinfo(PassageServiceImpl.java:50)
- at com.blog.Services.Impl.PassageServiceImpl.ListPublicAllowedPassageByUserinfo(PassageServiceImpl.java:57)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
- at java.lang.reflect.Method.invoke(Unknown Source)
- at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
- at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
- at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
- at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
- at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
- at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
- at $Proxy2.ListPublicAllowedPassageByUserinfo(Unknown Source)
- at com.blog.Actiion.BlogAction.Blog(BlogAction.java:103)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
- at java.lang.reflect.Method.invoke(Unknown Source)
- at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
- at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
- at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
- at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
- at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
- at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
- at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
- at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
- at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
- at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
- at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
- at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
- at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
- at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
- at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
- at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
- at
这个问题很奇怪,如果 只查询单个对象的话,结果就没有问题,但是如果 进行复合查找的话,就会报如下错误。
在网上百度了下,找到了解决办法,就是将查询对象相关对象表映射文件设置lazy="false",即取消延迟加载。
注意:要在 是表映射文件的一对多关系那里配置lazy="false"