关于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语句进行任意的查询了
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语句进行任意的查询了
相关文章推荐
- 关于net.sf.hibernate.MappingException: Unknown entity class的问题
- getHibernateTemplate().find(id)和.get(表.class,id)区别
- 解决hibernate产生的id序列或者setXX不能同步到数据库到问题(this.hibernateTemplate.flush();hibernateTemplate.getSessionFactory().getCurrentSession().connection().commit())
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 解决getHibernateTemplate().save ()不能将数据保存到数据库的问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于Hibernate save方法执行之后得到的id与数据库中实际存入值的id不一致的问题
- idhttp的关于get的问题
- (转)关于Class.getResource和ClassLoader.getResource的路径问题
- 使用Hibernate出现nested exception is org.hibernate.MappingException: entity class not found:问题
- he method get(Class, Serializable) in the type HibernateTemplate is not applicable for the arguments
- 关于virtualbox不能为虚拟电脑启动一个新任务报错 GetLastError=1790(其他错误id也可以一试)的问题
- 解决getHibernateTemplate().save ()不能将数据保存到数据库的问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- Hibernate注解开发关于Id的若干问题
- Hibernate中的session.load(class,id)参数问题
- SSH里面使用getHibernateTemplate().save(s)不能保存到数据库的问题
- 【JAVA】关于java中 类.class.getResource("/").getPath()获取路径有空格的问题