Uploadimage.hbm.xml----------------------------------
<hibernate-mapping>
  <class name="com.hycrm.bean.Uploadimage" table="LIVELL.UPLOADIMAGE" select-before-update="true">
     <id name="imgid" type="integer">
      <column name="IMGID" />
    </id>
      <property name="item" type="string">
        <column name="ITEM" length="50" />
      </property>
      <property name="imgUrl" type="string">
        <column name="IMG_URL" length="300"/>
      </property>
      <property name="imgLess" type="string">
        <column name="IMG_LESS" length="300"/>
      </property>
      <property name="imgOrder" type="integer">
        <column name="IMG_ORDER" precision="22" scale="0" />
      </property>
      <property name="imgSize" type="double">
        <column name="IMG_SIZE" precision="126" scale="0" />
      </property>
      <property name="title" type="string">
        <column name="TITLE" length="100"/>
      </property>
      <property name="hits" type="integer">
        <column name="HITS" precision="22" scale="0" />
      </property>
      <property name="addtime" type="date">
        <column name="ADDTIME" length="7" />
      </property>
      <property name="face" type="boolean">
        <column name="FACE" precision="1" scale="0" />
      </property>
      <property name="userid" type="string">
        <column name="USERID" length="50" />
      </property>
      <property name="adminid" type="string">
        <column name="ADMINID" length="50" />
      </property>
      <property name="sno" type="string">
        <column name="SNO" />
      </property>
      <property name="content" type="clob">
        <column name="CONTENT" />
      </property>
  </class>
</hibernate-mapping>Uploadimage.java----------------------------------------import java.sql.Clob;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;public class Uploadimage implements java.io.Serializable {  private static final long serialVersionUID = 1L;
  private int imgid;
  private String item;
  private String imgUrl;
  private String imgLess;
  private int imgOrder;
  private double imgSize;
  private String title;
  private int hits;
  private Date addtime;
  private boolean face;
  private String userid;
  private String adminid;
  private String sno;
  private Clob content;  getters & setters……
}
UploadimageDAO.java----------------------------------------
  public List<Uploadimage> findBySNO(String strSNO) {
    String strHQL="SELECT IMGID,IMG_URL,IMG_LESS,IMG_SIZE,TITLE,SNO FROM LIVELL.UPLOADIMAGE WHERE SNO='"+strSNO+"'";
    return (List<Uploadimage>)this.getHibernateTemplate().find(strHQL);
  }
}执行返回结果--------------------------------------------------
LIVELL.UPLOADIMAGE is not mapped ; nested exception is org.hibernate.hql.ast.QuerySyntaxException: LIVELL.UPLOADIMAGE is not mapped

解决方案 »

  1.   

    HQL中不要用表名,得用实体名(类名)。
      

  2.   

    楼上的方法可行,感谢,不过我在这之前把 findBySNO(String strSNO) 换成以下的写法,已经可以通过了
    {
    String strHQL="SELECT * FROM LIVELL.UPLOADIMAGE WHERE SNO='"+strSNO+"'";
    //以上的 * 换成先前那几个字段名还是不行
    Session oSess = this.getHibernateTemplate().getSessionFactory().openSession();
    SQLQuery objQue=oSess.createSQLQuery(strHQL).addEntity(Uploadimage.class);
    List objList=objQue.list();
    oSess.close();
    return objList;
    }但问题虽然已暂时解决,我还是希望弄清楚为什么用指定字段就查不出来?一度我以为是其中有个CLOB字段的原因,把这个字段从Uploadimage.hbm.xml、Uploadimage.java和数据库中去掉还是不行
      

  3.   

    应该不是指定字段和不指定字段的区别,
    你2楼用了createSQLQuery,这个是支持SQL查询语句的。
      

  4.   

    public List<Uploadimage> findBySNO(String strSNO) {
    String strHQL="SELECT imgid,imgUrl,imgLess,imgSize,title FROM Uploadimage WHERE sno='"+strSNO+"'";
    return (List<Uploadimage>)this.getHibernateTemplate().find(strHQL);
    }