hibernate一对多过滤集合抛出The collection was unreferenced错误

zhiquan911 2011-07-06 09:54:17
映射表关系

//TFatalDiseasesDirectory表
<hibernate-mapping>
<class name="myclass.database.tablemapping.TFatalDiseasesDirectory" table="T_FATAL_DISEASES_DIRECTORY" schema="SA">
<id name="id" type="java.lang.Long">
<column name="ID" precision="20" scale="0" />
<generator class="sequence">
<param name="sequence">T_FATAL_DISEASES_DIRECTORY_SEQ</param>
</generator>
</id>
<property name="serialNumber" type="java.lang.String">
<column name="SERIAL_NUMBER" length="20" />
</property>
<property name="name" type="java.lang.String">
<column name="NAME" length="200" />
</property>
<property name="note" type="java.lang.String">
<column name="NOTE" length="1000" />
</property>
<property name="disable" type="java.lang.String">
<column name="DISABLE" length="1" />
</property>
<property name="creatorNumber" type="java.lang.String">
<column name="CREATOR_NUMBER" length="20" />
</property>
<property name="creatorTime" type="java.lang.String">
<column name="CREATOR_TIME" length="20" />
</property>
<property name="modifyNumber" type="java.lang.String">
<column name="MODIFY_NUMBER" length="20" />
</property>
<property name="modifyTime" type="java.lang.String">
<column name="MODIFY_TIME" length="20" />
</property>
<property name="disableNumber" type="java.lang.String">
<column name="DISABLE_NUMBER" length="20" />
</property>
<property name="disableTime" type="java.lang.String">
<column name="DISABLE_TIME" length="20" />
</property>
<set name="fatalDiseasesLimit" table="T_FATAL_DISEASES_LIMIT"
cascade="save-update" inverse="true" lazy="false">
<key column="SERIAL_NUMBER" property-ref="serialNumber"></key>
<one-to-many
class="myclass.database.tablemapping.TFatalDiseasesLimit" />
</set>
</class>
</hibernate-mapping>



//TFatalDiseasesLimit表
<hibernate-mapping>
<class name="myclass.database.tablemapping.TFatalDiseasesLimit" table="T_FATAL_DISEASES_LIMIT" schema="SA">
<id name="id" type="java.lang.Long">
<column name="ID" precision="20" scale="0" />
<generator class="sequence">
<param name="sequence">T_FATAL_DISEASES_LIMIT_SEQ</param>
</generator>
</id>
<property name="serialNumber" type="java.lang.String">
<column name="SERIAL_NUMBER" length="20" />
</property>
<property name="year" type="java.lang.String">
<column name="YEAR" length="4" />
</property>
<property name="cityNumber" type="java.lang.String">
<column name="CITY_NUMBER" length="20" />
</property>
<property name="CountyNumber" type="java.lang.String">
<column name="COUNTY_NUMBER" length="4" />
</property>
<property name="limit" type="java.lang.Double">
<column name="LIMIT" precision="10" />
</property>
<property name="note" type="java.lang.String">
<column name="NOTE" length="1000" />
</property>
<property name="disable" type="java.lang.String">
<column name="DISABLE" length="1" />
</property>
<property name="creatorNumber" type="java.lang.String">
<column name="CREATOR_NUMBER" length="20" />
</property>
<property name="creatorTime" type="java.lang.String">
<column name="CREATOR_TIME" length="20" />
</property>
<property name="modifyNumber" type="java.lang.String">
<column name="MODIFY_NUMBER" length="20" />
</property>
<property name="modifyTime" type="java.lang.String">
<column name="MODIFY_TIME" length="20" />
</property>
<property name="disableNumber" type="java.lang.String">
<column name="DISABLE_NUMBER" length="20" />
</property>
<property name="disableTime" type="java.lang.String">
<column name="DISABLE_TIME" length="20" />
</property>
<many-to-one name="fatalDiseasesDirectory" property-ref="serialNumber"
class="myclass.database.tablemapping.TFatalDiseasesDirectory" fetch="join"
column="SERIAL_NUMBER" outer-join="auto" cascade="save-update" insert="false" update="false">
</many-to-one>
</class>
</hibernate-mapping>


TFatalDiseasesDirectory与TFatalDiseasesLimit是一对多关系


Query fatalDiseasesLimit=hSession.createFilter(rCvo.getFatalDiseasesLimit(),"where this.disable='0'");
Iterator ite = fatalDiseasesLimit.iterate();


第一行抛出The collection was unreferenced错误
...全文
197 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhiquan911 2011-07-11
  • 打赏
  • 举报
回复
终于解决了,lazy="true"


<set name="fatalDiseasesLimit" table="T_FATAL_DISEASES_LIMIT"
cascade="save-update" inverse="true" lazy="true">
<key column="SERIAL_NUMBER" property-ref="serialNumber"></key>
<one-to-many
class="myclass.database.tablemapping.TFatalDiseasesLimit" />
</set>



程序代码

SessionFactory sf = (SessionFactory) SB.getBean("sessionFactory");
Session hSession = sf.openSession();
......
......
TFatalDiseasesDirectory rCvo = (TFatalDiseasesDirectory)hSession.createQuery("from TFatalDiseasesDirectory where id="+id).list().get(0);
......
......
Collection fatalDiseasesLimit=hSession.createFilter(rCvo.getFatalDiseasesLimit(),"where this.disable='"+Constants.ENABLE_TRUE+"'").list();
zhiquan911 2011-07-07
  • 打赏
  • 举报
回复
有谁看看?
zhiquan911 2011-07-06
  • 打赏
  • 举报
回复
有谁可以解决

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧