我在使用Hibernate时,使用了HibernateDaoSupport类,
其中 NoticeName的值为 :2010-01-13 16:16:28.0
hql="from News news where news.newstime=?";
//执行查询业务
Noticelist=this.getHibernateTemplate().find(hql,NoticeName);
}执行到查询业务时,出现错误如下:严重: Servlet.service() for servlet action threw exception
java.lang.ClassCastException: java.lang.String
at org.hibernate.type.TimestampType.toString(TimestampType.java:55)
at org.hibernate.type.NullableType.toLoggableString(NullableType.java:168)
at org.hibernate.pretty.Printer.toString(Printer.java:65)
at org.hibernate.engine.QueryParameters.traceParameters(QueryParameters.java:271)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:151)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:839)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:362)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:830)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:826)
at jiandong.huaruan.dao.NoticeManagerDao.noticeInitializeSelect(NoticeManagerDao.java:58)
at jiandong.huaruan.service.NoticeManagerService.noticeInitializeSelect(NoticeManagerService.java:36)
at jiandong.huaruan.service.NoticeManagerService$$FastClassByCGLIB$$8a660601.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:714)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:162)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:652)
at jiandong.huaruan.service.NoticeManagerService$$EnhancerByCGLIB$$2d95858c.noticeInitializeSelect(<generated>)
at jiandong.huaruan.action.NoticeManagerAction.noticeInitializeSelect(NoticeManagerAction.java:66)
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.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)是怎么回事?请高手指点一下!
其中 NoticeName的值为 :2010-01-13 16:16:28.0
hql="from News news where news.newstime=?";
//执行查询业务
Noticelist=this.getHibernateTemplate().find(hql,NoticeName);
}执行到查询业务时,出现错误如下:严重: Servlet.service() for servlet action threw exception
java.lang.ClassCastException: java.lang.String
at org.hibernate.type.TimestampType.toString(TimestampType.java:55)
at org.hibernate.type.NullableType.toLoggableString(NullableType.java:168)
at org.hibernate.pretty.Printer.toString(Printer.java:65)
at org.hibernate.engine.QueryParameters.traceParameters(QueryParameters.java:271)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:151)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:839)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:362)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:830)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:826)
at jiandong.huaruan.dao.NoticeManagerDao.noticeInitializeSelect(NoticeManagerDao.java:58)
at jiandong.huaruan.service.NoticeManagerService.noticeInitializeSelect(NoticeManagerService.java:36)
at jiandong.huaruan.service.NoticeManagerService$$FastClassByCGLIB$$8a660601.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:714)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:162)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:652)
at jiandong.huaruan.service.NoticeManagerService$$EnhancerByCGLIB$$2d95858c.noticeInitializeSelect(<generated>)
at jiandong.huaruan.action.NoticeManagerAction.noticeInitializeSelect(NoticeManagerAction.java:66)
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.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)是怎么回事?请高手指点一下!
解决方案 »
- 如何禁止页面回退?
- 项目中在线等。。。有关webwork拦截器的问题,还望指教
- hibernate一对多映射查询怎么写,请大家帮忙了
- jsp循环查询为什么不行呢? 看看
- 求大神解决啊啊jsp中input下onclick事件问题
- 请stonefeng(浩)进来
- 毕业设计最终发行版!请各界朋友参与最终的测试!
- 为什么呀!!!!!!谁能帮我解惑?马上送分啦!
- 在线等待~~ 急急急 (关于电子商务购物系统的程序开发的价格问题)
- 请问 发布JSP程序用什么WEB服务器最好 从哪里下载?
- Oracle的BLOB类型被Hibernate 3.0 映射为String,如何上传大数据
- 50分问如何局域网内访问自己tomcat发布的主页
对 NoticeName 转换数据类型,hql="from News news where news.newstime=?";
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.0");
Date nowDate=null;
try {
nowDate = (Date) dateFormat.parse(NoticeName);
} catch (ParseException e) {
System.out.println("转换失败!");
}
//数据处理
Noticelist=this.getHibernateTemplate().find(hql,NoticeName);就会报出错误:
javax.servlet.ServletException: java.lang.ClassCastException: java.util.Date
这有事怎么个情况呢? 怎样修改啊!
private Date newstime;
但是其中 NoticeName的值为 :2010-01-13 16:16:28.0
这个值是从MySql中直接取出来的,
怎么会多了一个".0" ???????
还是不明白,并且在使用
Noticelist=this.getHibernateTemplate().find(hql,NoticeName);
时,仍然报出:
Servlet.service() for servlet action threw exception
java.lang.ClassCastException: java.lang.String
at org.hibernate.type.TimestampType.toString(TimestampType.java:55)
at org.hibernate.type.NullableType.toLoggableString(NullableType.java:168)
at org.hibernate.pretty.Printer.toString(Printer.java:65)
at org.hibernate.engine.QueryParameters.traceParameters(QueryParameters.java:271)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:151)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:839)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:362)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:830)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:826)
at jiandong.huaruan.dao.NoticeManagerDao.noticeInitializeSelect(NoticeManagerDao.java:58)
at jiandong.huaruan.service.NoticeManagerService.noticeInitializeSelect(NoticeManagerService.java:36)
at jiandong.huaruan.service.NoticeManagerService$$FastClassByCGLIB$$8a660601.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:714)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:162)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:652)
对了直接匹配数据库的Date或time,要用new java.sql.*包里面的。
bean和配置文件都改下
主键是专业编号,自己添加。
@SuppressWarnings("unchecked")
public List<Zhuanye> findAll() {
log.debug("finding all Zhuanye instances");
List<Zhuanye> list2 =null;
try {
String queryString = "from Zhuanye";
Query queryObject = HibernateSessionFactory.getSession().createQuery(queryString);
list2= queryObject.list();
return list2;
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}
}
http://www.blogjava.net/zygcs/archive/2006/12/21/89280.html你数据库中存的是什么类型。如果是字符串的话。就不用多说了。
如果是日期的话。用java.sql.Date.valueOf 转一转试试。
hql="from News news where news.newstime=to_date('" + stime + "','yyyy-MM-dd HH24:mi:ss')