把我的给你参考一下,你的外健设置有点问题phones表<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="pojo">
<class name="Phone" table="PHONE">
<id name="id" column="id">
<generator class="sequence" />
</id>
<property name="name" column="phone_name" unique="true" not-null="true" />
<property name="price" type="java.lang.Double" />
<property name="startTime" type="java.util.Date" />
<property name="stopTime" type="java.util.Date" />
<property name="smallPicture" type="java.sql.Blob" /> 
<property name="bigPicture" type="java.lang.String" />
<property name="introduct" />
<property name="gsm" />
<property name="type" />
<property name="camera" />
<property name="smart" />
<property name="color" />
<property name="comments" type="java.sql.Clob" />
<property name="support" type="boolean" />
<property name="manual" type="java.sql.Clob" />
<many-to-one name="vender" class="Vender"
column="vender_id" not-null="true" insert="true" />
</class>
</hibernate-mapping>
vender表<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="pojo">
<class name="Vender" table="vender" >
<id name="id" column="id">
<generator class="sequence" />
</id>
<property name="name" column="vender_name" unique="true" not-null="true" />
<property name="interduction" />
<set name="phones">
<key column="vender_id" />
<one-to-many class="Phone" />
</set>
</class>
</hibernate-mapping>

解决方案 »

  1.   

    当我进行级联查询的时候,也就是查询CUS表的一行记录想级联查询出它想关联的ORDS表的集合的时候,查询语句这样:
      

  2.   

    public Cus findById(Integer id) {
         Cus cus = null;
         cus = (Cus) getHibernateTemplate().get(Cus.class, 1);
         cus.getOrdses().iterator();
         return cus;
    }
    就出现下面的异常:
    Hibernate: select cus0_.ID as ID0_, cus0_.NAME as NAME0_0_, cus0_.AGE as AGE0_0_ from cus cus0_ where cus0_.ID=?
    Exception in thread "main" org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: hibernateBean.Cus.ordses - no session or session was closed
    at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:191)
    at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:183)
    at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:48)
    at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:134)
    at myDao.CusDAOImpl.findById(CusDAOImpl.java:96)
    at test.Test.main(Test.java:47)
      

  3.   

    Unknown type '246 in column 5 of 6 in binary-encoded result set==========================
    '246是cus_id的值吗,按提示是查询时出错,好像是匹配外键cus_id的值出错
      

  4.   

    表结构如下:
    CREATE TABLE CUS
    (
    ID INT AUTO_INCREMENT,
    NAME VARCHAR(20),
    AGE INT,
    PRIMARY KEY(ID)
    );CREATE TABLE ORDS
    (
    ID INT AUTO_INCREMENT,
    ORDER_NUMBER VARCHAR(20),
    PRICE DECIMAL(5,2),
    CUS_ID INT,
    PRIMARY KEY(ID),
    FOREIGN KEY(CUS_ID) REFERENCES CUS(ID)
    );
      

  5.   

    请查看查询CUS对象的代码中是否手动调用session.close()方法,去掉即可,session由spring管理
      

  6.   

    no session or session was closed
    是延迟加载的时候,session关闭了。
      

  7.   

    请看一下此帖,是否会对你有所帮助:
    http://community.csdn.net/Expert/topic/5101/5101129.xml?temp=.8249475
      

  8.   

    <id name="id" type="integer">