List list = secondSession.createSQLQuery("select * from Item").addEntity(Item.class).list();报错:     Caused by: java.sql.SQLException: 列名无效

解决方案 »

  1.   

    select * 表明选择字段要和你的实体类Item.class完全匹配,建议你还是写上字段吧,这样还检查
      

  2.   

    HQL语句和数据库的语法有差别的,千万不要用*来代替,操作数据库习惯了,这俩天用*,程序报了N多的错误
      

  3.   

    你给表起个别名  例如  select a from Item a;
      

  4.   

    Item.class中必须要有数据库中Item表的所有字段及其setter(),getter()方法。
      

  5.   

    使用原生sql是要通过ResultSetMetaData获取各个列的信息,最好按字段去查询,不要省事
      

  6.   


    OK了,错误原因已查明,我将select * from Item中的表名写成了类名,将Item类名改为相对应的表名之后就可以了,感谢各位支持。