您的位置:首页 > 其它

关于getHibernateTemplate().get(entityClass, id)的问题

2017-06-11 23:16 513 查看
            今天在使用hibernate的getHibernateTemplate().get(entityClass, id)的时候,我的代码如下:

         public Manager getManager(String username) {

        

        Manager manager=getHibernateTemplate().get(Manager.class,username);//这里的username非id

        return manager;

    }

           发现我的代码在运行的时候总是出现下面的问题:

严重: Exception occurred during processing request: null

java.lang.NullPointerException

    at com.supermarket.action.ManagerAction.main(ManagerAction.java:93)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:483)
    at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:870)

后来在网上找了之后发现原来getHibernateTemplate().get(entityClass, id)中的id只能是按照主键来查询,但是如果一定需要通过username来查找到我所需要的数据,就需要实现实现HibernateCallBack接口,里面只有一个doInHibernate方法,获得HibernateCallBack里面的doInHibernate(Session session)方法的参数:Session,就可以使用Session的CreateQuery方法创建Query对象,然后就可以使用HQL语句进行任意的查询了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐