Session session = sf.openSession();
session.beginTransaction();
Query q = (Query) session
.createQuery("select distinct prog.prog_program_title from ProgramClass prog where prog.program_title='"+ this.jTxt_search.getText()+ "'");
List<ProgramClass> objects = (List<ProgramClass>) ((org.hibernate.Query) q)
.list();
                   List title = new ArrayList();
for (ProgramClass prog : objects) {
System.out.println(prog.getProgram_title());
                           title.add(prog.getProgram_title());
}
session.getTransaction().commit();
session.close();为什么会报 java.lang.ClassCastException: java.lang.String cannot be cast to DatabaseADO_TablesJavabean.ProgramClass的错误请高手指点一下

解决方案 »

  1.   

    你查找的是一个字段prog.prog_program_title ,超找完list里封装的就是这一个字段,string类型的,而你却把他强制类型装换成了ProgramClass   ,就你这段代码for   (ProgramClass   prog   :   objects)   { 
    System.out.println(prog.getProgram_title()); 
    title.add(prog.getProgram_title()); 
    } 你直接从list里get出来的就是getProgram_title的值了
      

  2.   


    for(int i=0;i<objects.Size();i++)
    {
    String ptitle = objects.get(i).toString();
    System.out.println(ptitle); 
    }
      

  3.   

    不行啊。。我原来的代码能运行,但是重复的全部显示出来了。。我要取不重复的title。。你的代码也是同样的错误
      

  4.   

    实在不行就换成createSQLQuery试试