当前位置: 代码迷 >> Java Web开发 >> 在使用Hibernate时出现的空指针错误
  详细解决方案

在使用Hibernate时出现的空指针错误

热度:10762   发布时间:2013-02-25 21:12:40.0
在使用Hibernate时出现的空指针异常,求助
其他配置都没问题了,就是要操作数据库时的Hibernate出现了问题,一直是空指针异常,不知道为什么
UserDaoImpl.java代码
Java code
public User regist(User user) {        // TODO Auto-generated method stub         List ul = getHibernateTemplate().find("from users u where u.username = ?" , new String[]{user.getUsername()});            if (ul == null || ul.size() < 1)            {                this.getHibernateTemplate().saveOrUpdate(user);                return user;            }            return null;    }


问题所在

java.lang.NullPointerException
com.AppMarket.DAO.UserDaoImpl.regist(UserDaoImpl.java:23)
com.AppMarket.service.UserServiceImpl.regist(UserServiceImpl.java:18)
com.AppMarket.Action.UserAction.regist(UserAction.java:41)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)

这样的错误是为什么呢?会是出现在数据库那方面然后导致的吗?


------解决方案--------------------------------------------------------
如果getHibernateTemplate()为null
可能是你的spring配置文件没起到作用,很明显的是你的getHibernateTemplate()为空,说明注入失败。好好检查你的ApplicationContext.xml,看看web.xml有没有加载spring配置文件

如果user为null
检查下user是哪里拿到的,为什么拿到是null。

------解决方案--------------------------------------------------------
UserDaoImpl.java:23已经提示是这行了,楼上正解,检查getHibernateTemplate()和user哪个为null,再对症下药
------解决方案--------------------------------------------------------
我认为是你写的那个if有问题,如果list为null,为什么还要保存啊??这样不出现空指针才怪呐,将if的条件改为if(ul!=null&&ul.size>0){
this.getHibernateTemplate().saveOrUpdate(user);
return user;

}
  相关解决方案