<id   name="id"   type="java.lang.Integer"> private   Integer   id; 建议你把所有使用 Integer 类型作为ID的都改成Long

解决方案 »

  1.   

    >机器报错java.lang.ClassCastException:   java.lang.Long,我连是什么意思都不明白,求助!意思是说类型转换错误,本来orders.getCustomerId();得到的是Long,
    但你要把他转换成Integer,就出这个错误了。
      

  2.   

    不对吧。我看了楼主的代码,那个customerId是这么写的:private   Customers   customerId; ...public Customers getCustomerId(){
        return   this.customerId;
    }
           
    public void setCustomerId(Customers customerId)   {
        this.customerId   =   customerId;

    从这段代码看来,楼主是把customerId当成一个名字叫做Customers的对象了。但是我又看了楼主的映射,好像实际上这个customerId就是一个id,一个Number类型的ID。因此,很明显楼主根本就不懂得多对一隐射的意义,代码和映射不一致。
      

  3.   

    我在映射文件里写的:
    <many-to-one   name="customerId"   column="CUSTOMER_ID"
                    class="linyuan.Customers"   cascade="save-update">
                    </many-to-one>这里应该没有错啊?难到是这里错了:    create   table   `linyuan`.`orders`(
                    `ID`   int   default   ''   not   null,
                  `ORDERNUMBER`   varchar(20),
                  `CUSTOMER_ID`   int,            //但是我看书上都是这么用的?
                    primary   key   (`ID`)
            ); 
      

  4.   

    我想看看 Customers.java