ERROR LazyInitializationException:19 - could not initialize proxy - no Session我把<many-to-one>端的lazay已经设为了false,怎么还出现这个异常啊,有会的教下我,谢谢

解决方案 »

  1.   

    dao代码:       /**
     * 根据任务ID查询
     * @param task_id
     * @return
     */
    public Task get(int task_id) 
    {

    return (Task)getHibernateTemplate().load(Task.class, task_id);
    }
    测试代码:        @Test
    public void testSel()
    {
    Task t = dao.get(1);
    System.out.println(t.getType()); //根据id来查询Task的相关信息时会有could not 
                                                       initialize proxy - no Session 抛出 }
    task.hbm.xml <class name="com.om.fee.model.Task" table="task" catalog="om">
            <id name="task_id" type="java.lang.Integer">
                <column name="task_id" />
                <generator class="native"></generator>
            </id>
            <property name="reason" type="java.lang.String">
                <column name="reason" length="65535" />
            </property>
            <property name="type" type="java.lang.String">
                <column name="type" length="30" />
            </property>
            <property name="start_time" type="java.util.Date">
                <column name="start_time" length="10" />
            </property>
            <property name="end_time" type="java.util.Date">
                <column name="end_time" length="10" />
            </property>
            <set name="fees" inverse="true">
                <key>
                    <column name="task_id" not-null="true"/>
                </key>
                <one-to-many class="com.om.fee.model.Fee"/>
            </set>
        </class>
    fee.hbm.xml<class name="com.om.fee.model.Fee" table="fee" catalog="om">
            <id name="fee_id" type="java.lang.Integer">
                <column name="fee_id" />
                <generator class="native"></generator>
            </id>
          
           <many-to-one name="task" column="task_id" class="com.om.fee.model.Task" not-null="true" lazy="false">
           </many-to-one>
            <property name="proposer" type="java.lang.String">
                <column name="proposer" length="20" />
            </property>
            <property name="department" type="java.lang.String">
                <column name="department" />
            </property>
            <property name="reason" type="java.lang.String">
                <column name="reason" length="500" />
            </property>
            <property name="money" type="java.lang.Float">
                <column name="money" precision="12" scale="0" />
            </property>
            <property name="actual_money" type="java.lang.Long">
                <column name="actual_money" precision="12" scale="0" />
            </property>
            <property name="time" type="java.sql.Date">
                <column name="time" length="10" />
            </property>
            <property name="approver" type="java.lang.String">
                <column name="approver" length="10" />
            </property>
            <property name="note" type="java.lang.String">
                <column name="note" length="500" />
            </property>
        </class>task 和 fee是1:N关系