String hql="from Books where id="+id; 错了,用下面的:String hql="from Books where id= "+ id +""; 

解决方案 »

  1.   

    hibernate的配置文件怎么写的,感觉Spring无法把查到的结果转成Books;(Books)list
    为什么要把list强转成Books?
      

  2.   

    String hql="from Books where id="+id;
    是对的,因为输出的是
       from Books where id=1 
      

  3.   

    List list=super.getHibernateTemplate().find(hql); 
    return (Books)list; 
    这里有错
    list是一个集合,list里面存的是一个个的Books对象,
    而你把一个集合(list)强制转化为一个对象Books那样就会报错解决办法:return (Books)list.get(0);
    这个才是你查询的一条记录
    list.get(0);这个是一个Object对象
    你再强转为Books就行了啊
      

  4.   

    对的 虽然list的集合中只有1条记录 但要先转成Object类型才能强转成其他类型
    list.get(0);
      

  5.   

    改了还是没有用,这句总是通不过List list=super.getHibernateTemplate().find(hql); 
      

  6.   

    不可转换的类型你肯定去出的类型跟你要转换的类型不一致在就是不管是SQL,还是 HQL,不要用拼接字符串尽量用 ? 或 属性代替
      

  7.   

    Hibernate和SQLServer 2000工作会有问题的,你可以看一下官方的QA, 你的情况就是典型的错误之一
    http://www.hibernate.org/120.html#A7
      

  8.   

    程序员在深圳java群 4247660 欢迎高手的加入
      

  9.   

    List list=super.getHibernateTemplate().find(hql); 否无法通过,可定是配置文件有问题
      

  10.   

    请看sqlserver版本是否升级为sp4版本号8.00.2039