Vo: staff.java 
String hql = "FROM Staff AS n WHERE n.id=?"; 你的Vo是小写的 s  hql 里面是 大写的 S 会不会调用的别的实体类啊。

解决方案 »

  1.   

    我刚刚碰到啊,我也想不通,我把id改成userid又可以了,不知道为什么
      

  2.   

    <id name="num" type="java.lang.Integer"> 
                 <column name="num" /> 
                 <generator class="assigned" /> 
             </id> 
    你把主键对应的字段设置称num了,而不是id
      

  3.   

    <id name="num" type="java.lang.Integer">
                 <column name="num" />
                 <generator class="assigned" />
             </id> 
    在hql语句中id就是主键,你定义的非主键的id属性是不能被引用到的。
      

  4.   

    <hibernate-mapping> 
         <class name="com.ln.vo.Staff" table="staff" catalog="jxc"> 
             <id name="num" type="java.lang.Integer"> 
                 <column name="num" /> 
                 <generator class="assigned" /> 
             </id> 去掉catalog="jxc" 试试