ssh

ssh简单问题:调用NewsDAO里面操作数据库的方法出错, 
简单描述一下我的相关代码: NewsAction: 
public class NewsAction extends DispatchAction {         //删除信息 
public ActionForward deleteNews(ActionMapping mapping, ActionForm form, 
HttpServletRequest request, HttpServletResponse response) { String nids[] = request.getParameterValues("nid"); 
int cid = -1; 
  int nid = Integer.parseInt(nids[0]); 
  newsDao.findNewByNid(nid); 
............ 
applicationContext.xml <bean name="/news" class="com.aso.struts.action.NewsAction" 
abstract="false" lazy-init="default" autowire="default" 
dependency-check="default"> 
<property name="newsDao"> 
<ref bean="NewsDAO" /> 
</property> 
<property name="newsPaging"> 
<ref bean="NewsPaging" /> 
</property> 
</bean> NewsDAO: 
public News findNewByNid(int nid) 

log.debug("getting News instance with nid"); 
try { 
News instance = (News) getHibernateTemplate().find("from News as news where news.nid="+nid); 
return instance; 
} catch (RuntimeException re) { 
log.error("get failed", re); 
throw re; 

} ---------------------运行报错位置------------------------ 
newsDao.findNewByNid(nid); ---------------------报错信息---------------------------- 严重: Servlet.service() for servlet action threw exception 
java.lang.ClassCastException: java.lang.String 
at org.hibernate.type.TimestampType.isEqual(TimestampType.java:77) 
at org.hibernate.type.NullableType.isEqual(NullableType.java:160) 
at org.hibernate.type.AbstractType.isSame(AbstractType.java:104) 
at org.hibernate.type.AbstractType.isDirty(AbstractType.java:70) 
at org.hibernate.type.NullableType.isDirty(NullableType.java:186) 
at org.hibernate.type.TypeFactory.findDirty(TypeFactory.java:476) 
at org.hibernate.persister.entity.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:2803) 
at org.hibernate.event.def.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:467) 
at org.hibernate.event.def.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:190) 
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:113) 
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:195) 
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76) 
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26) 
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985) 
at org.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390) 
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:373) 
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:840) 
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:836) 
at com.aso.dao.NewsDAO.findByProperty(NewsDAO.java:92) 
at com.aso.dao.NewsDAO.findByWriter(NewsDAO.java:104) 
at com.aso.struts.action.NewsAction.deleteNews(NewsAction.java:74) 
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.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:150) 
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) 
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) 
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) 
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
at java.lang.Thread.run(Unknown Source) 
我是自学SSH的,昨天遇到这个问题,想了很久都不知道哪儿错了,请指教

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【xiangdeweiwangfengg】截止到2008-07-16 08:13:34的历史汇总数据(不包括此帖):
    发帖的总数量:16                       发帖的总分数:660                      每贴平均分数:41                       
    回帖的总数量:53                       得分贴总数量:21                       回帖的得分率:39%                      
    结贴的总数量:15                       结贴的总分数:660                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:1                        未结的总分数:0                        
    结贴的百分比:93.75 %               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    值得尊敬
      

  2.   

    News 里面的属性的类型和数据库是对应的吗,检查一下,数据库是datetime类型的话,News 里面应该是Date类型
      

  3.   


    ---------------------------------------------------------应该是对的,我是用Hibernate Reverse Engineering 一对一的根据数据库表的字段叛向工程的,
    肯定没问题
      

  4.   

    public class News implements java.io.Serializable { // Fields private Integer nid;
    private Ncategory ncategory;
    private String ntitle;
    private String writer;
    private String imgPath;
    private String content;
    private Date issueTime;
    private Integer pcId;
    private Integer ncount;
    ......
    问题不是在这里,不过仍然谢谢您
      

  5.   

    我再更正一下错误:
    at com.aso.dao.NewsDAO.findByWriter(NewsDAO.java:104) 
    at com.aso.struts.action.NewsAction.deleteNews(NewsAction.java:74) -->at com.aso.dao.NewsDAO.findNewByNid(NewsDAO.java:104) 
    at com.aso.struts.action.NewsAction.deleteNews(NewsAction.java:74) 刚才发贴的时候该了一下
      

  6.   

    你连的是什么数据库,有的数据库的语句不用as 意思是说form News n where ..... 还有你最好不要把News news这样写如果不区分大小写的话那不是一样了??
      

  7.   


    --------------------我用的是sqlserver数据库-----------------------------------------
      

  8.   

    java.lang.ClassCastException: java.lang.String //类型转换了?
    News instance = (News) getHibernateTemplate().find("from News as news where news.nid="+nid); 
    这句换成SESSION试试。
      

  9.   

    News instance = (News) getHibernateTemplate().find("from News as news where news.nid="+nid); 
    ????????getHibernateTemplate().find("from News as news where news.nid="+nid); 
    返回单个对象???就算是单个对象,也应该是用(News)(getHibernateTemplate().find("from News as news where news.nid="+nid).get(0))这样来取的吧???