2 ouyang19910205 ouyang19910205 于 2013.05.31 19:00 提问

我用hibernateTemplate的find查询出现空指针异常

当查询的那一行数据的外键没有值时可以查得到,但外键有值时则报空指针异常,一下是hibernate的源码部分

public Number selectById(String id){
        // TODO Auto-generated method stub

        String hql="from Number wherer id=?";//报错行
        List<Number> list=hibTemplate.find(hql,id);
        if(list.size()>0){
            return list.get(0);
        }else{
            return null;
        }

    }

这里id是主键

一下是错误页面:

javax.servlet.ServletException: java.lang.NullPointerException
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:518)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)


root cause 

java.lang.NullPointerException
    org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)
    org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:3121)
    org.hibernate.event.def.DefaultLoadEventListener.createProxyIfNecessary(DefaultLoadEventListener.java:232)
    org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:173)
    org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:87)
    org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:862)
    org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:830)
    org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:266)
    org.hibernate.type.EntityType.resolve(EntityType.java:303)
    org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:116)
    org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:842)
    org.hibernate.loader.Loader.doQuery(Loader.java:717)
    org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
    org.hibernate.loader.Loader.doList(Loader.java:2145)
    org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
    org.hibernate.loader.Loader.list(Loader.java:2024)
    org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)
    org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308)
    org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153)
    org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106)
    org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
    org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:849)
    org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
    org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:840)
    org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:836)
    com.etc.dao.NumberDAOHibernateTemplateImpl.selectById(NumberDAOHibernateTemplateImpl.java:19)
    com.etc.service.NumberServiceImpl.delNum(NumberServiceImpl.java:32)
    com.etc.action.NumberAction.deleteNumber(NumberAction.java:115)

1个回答

lyyybz
lyyybz   Rxr 2016.08.19 10:51

请问你的问题解决了么,我碰到和你一样的问题!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!