org.hibernate.ObjectNotFoundException:没有给定标识符的行

问题描述:

强文本 1.EmpInformation文件包含具有Department类的多对一标签。org.hibernate.ObjectNotFoundException:没有给定标识符的行

<composite-id name="id" class="info"> 
      <key-property name="XXXid" type="int"> 
       <column name="xxxid" /> 
      </key-property> 
     <key-property name="AAA" type="string"> 
       <column name="aaa" length="50" /> 
      </key-property> 
      <key-property name="BBB" type="string"> 
       <column name="bbb" length="50" /> 
      </key-property> 
    </composite-id> 

    <many-to-one name="Dept" class="Department" update="false" insert="false" fetch="select"> 
       <column name="AAA" length="50" not-null="true" /> 
      <column name="BBB" length="50" not-null="true" /> 
    </many-to-one> 

</class> 

有一些更强大的绘图文字 2. Department类多到一个和某些属性。

<composite-id name="id" class="deptId"> 

    <key-property name="AAA" type="string"> 
      <column name="aaa" length="50" /> 
     </key-property> 
     <key-property name="BBB" type="string"> 
      <column name="bbb" length="50" /> 
     </key-property> 
    </composite-id> 

<property name="ReportId" type="java.lang.Integer"> 
     <column name="report_id" /> 
    </property> 


</class> 

强大的文本 我的问题是,每当我试图调用ReportID上getDepartment它给呃ror as org.hibernate.ObjectNotFoundException:不存在具有给定标识符的行: 看来我没有得到部门信息。

  1. List a = createCriteria(EmpInformation.class);

  2. Integer I = a.getDepartment()。getReportID();

强大的文本 这是我们正在使用访问部门信息的语句:

强大的文本 我想指出一些更多的信息在这里 1.懒惰是真实的默认,所以每当我访问子表实体它应该得到的信息,但它不会。 2.如果我删除它是强制更新=“假”插入=“假”,那么它是要求我把它。

我在其他论坛也问过这个问题......但是没有人回答..我想知道这个问题是否很难?

我看起来像数据的问题,但还是没能找到什么在去... :)

是的,它是一个数据问题。无论何时您试图通过传递父表列ID来检索数据,相同的数据都应该在子表中可用。否则,你会得到错误为ObjectNotFound异常。

+0

你的答案有点不清楚,请你详细说明一下 – 2013-08-28 12:41:05