Hibernate: select hibernate_sequence.nextval from dual
java.lang.ClassCastException: java.lang.String
        at net.sf.hibernate.type.TimestampType.deepCopyNotNull(TimestampType.java:63)
        at net.sf.hibernate.type.NullableType.deepCopy(NullableType.java:96)
        at net.sf.hibernate.type.TypeFactory.deepCopy(TypeFactory.java:212)
        at net.sf.hibernate.impl.SessionImpl.doSave(SessionImpl.java:937)
        at net.sf.hibernate.impl.SessionImpl.doSave(SessionImpl.java:868)
        at net.sf.hibernate.impl.SessionImpl.saveWithGeneratedIdentifier(SessionImpl.java:790)
        at net.sf.hibernate.impl.SessionImpl.save(SessionImpl.java:749)
        at org.springframework.orm.hibernate.HibernateTemplate$9.doInHibernate(HibernateTemplate.java:555)
        at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:363)
        at org.springframework.orm.hibernate.HibernateTemplate.save(HibernateTemplate.java:552)
        at com.viewtoo.podcasting.user.comment.CommentDataAccessImpl.addAssetComment(CommentDataAccessImpl.java:159)
        at com.viewtoo.podcasting.user.comment.CommentService.addComment(CommentService.java:181)
        at com.viewtoo.podcasting.servlet.CommentServlet.doPost(CommentServlet.java:134)
        at com.viewtoo.podcasting.servlet.CommentServlet.doGet(CommentServlet.java:38)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

解决方案 »

  1.   

    执行save方法就是将用户在页面上输入的数据存放到数据库中的过程,所以你要保证页面上的数据类型和数据库中的一致,否则就会报错。这里报类型转换错误很有可能是你在页面中定义的类型和数据库中的类型不一致。比如你在页面读入的都是String,但是如果你在数据库中定义了一个Date类型,就会报错。楼主可以根据这个思路去找找看先
      

  2.   

    类转换,看看哪个字段string转的。
      

  3.   

    你可以看下 hibernate的配置文件中的类型和类中的类型是否一致。ClassCastException 是 JVM 在检测到两个类型间的转换不兼容时引发的运行时异常 
      

  4.   

    CommentDataAccessImpl.java:159   看看这行是不是有强转 
      

  5.   

    类型转换问题,请检查一下Hibernate中配置文件(如果是自动生的就不需要),持久层对象的值插入时要一至,
    从页面获得的值一般是String型,需要转换,才能save,否则你commit时就会报错
      

  6.   

    呵呵,上面的方法是对滴!你要在debug模式下调调看!