有这样一个函数 
 
public List getTrades() 

        openSession();//打开session 
        String hsql = "from tbl_trade"; 
        Query query = session.createQuery(hsql); 
        List list = query.list() ; 
        closeSession();//关闭session() 
        return list; 

//运行该函数时报错 
 
报错信息: 
org.apache.jasper.JasperException: tbl_trade is not mapped [from tbl_trade] 
而如果用下面的代码运行则能正确插入数据 
 
public List getTrades() 
    { 
        openSession();//打开session 
        DbTrade trade = new DbTrade(); 
        trade.setTradeId(2); 
        trade.setTradeName("IT业"); 
        session.save(trade); 
        //String hsql = "from tbl_trade"; 
        //Query query = session.createQuery(hsql); 
        //List list = query.list() ; 
        closeSession();//关闭session() 
        return null;     } 
为什么前面那个查询的函数会报错呢?小弟刚刚学习hiberater,请各位高手不吝赠教. 其中 tbl_trade 的结构为:  
create table tbl_trade 

trade_id int4 not null , 
trade_name varchar(30) not null, 
constraint tbl_trade_id_pk primary key(trade_id) 
); 
 DbTrade.java 的代码如下:  
public class DbTrade implements Serializable { 
    private int tradeId; 
    private String tradeName; 
    public DbTrade() { 
    } 
    public int getTradeId() { 
        return tradeId; 
    } 
    public String getTradeName() { 
        return tradeName; 
    } 
    public void setTradeId(int tradeId) { 
        this.tradeId = tradeId; 
    } 
    public void setTradeName(String tradeName) { 
        this.tradeName = tradeName; 
    } 

 
TbTrade.hbm.xml 的内容如下:  
<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > 
     
<hibernate-mapping> 
<class  
    name="com.callcenter.dicword.db.DbTrade"  
    table="tbl_trade" 

<id name="tradeId" type="int" column="trade_id"> 
<generator class="assigned" /> 
     </id> 
<property name="tradeName" type="java.lang.String" column="trade_name" not-null="true" length="30"/> 
</class> 
</hibernate-mapping>