2

我有两个映射文件。建筑和联系人。每个 Buildung 都有一个 ContactPerson。所以我已经建立了一对一的关系

在 Building 中,我有“Meetingplace”列,在“Contact”中,我有“Meetingplace”和“ContactpersonName”列

在联系人中,我将联系人分配给会议地点。

例如:建筑中的会议地点是德国。现在在 Contact 中,我为 Meetingplace Germany 分配了一个联系人。

接触:

这是我的映射文件

    <class name="Book.Doa.Contact" table="Contact">
<id name="ID">
  <generator class="foreign">
    <param name="property">Parent</param>
  </generator>
</id>

<property name="Contact" length="20" column="Contactperson"/>
<property name="Meeting" length="20" column="Meetingplace"/>

<one-to-one name="Parent"
        class="Book.Doa.Building" constrained="true"/>

建造:

 <class name="Book.Doa.Building">
    <id name="ID">
        <generator class="native">
            <param name="sequence">GLOBALSEQUENCE</param>
        </generator>
    </id>


    <property name="Standort" column="Meetingplace" />

  <one-to-one name="Partner" lazy="false" cascade="all" fetch="join" outer-join="true"
   class="BookIt.Domain.Contact, BookIt.Core"  />

</class>

我的问题是我一直是错误的:

Object reference not set to instance of an object

如果我使用 room.Building.Partner.Contact 来获取建筑物中会议地点的联系人。

数据库中有值,所以我不知道为什么会收到该错误。我在做什么错?问题是我如何才能获得位于 Bulding 的 Meetingplace 的 ContactPerson?

请帮忙!.

4

1 回答 1

0

如下尝试lazy = true,它可能会起作用,因为我遇到了相同类型的问题并且它起作用了。

  <one-to-one name="Partner" lazy="true" cascade="all" fetch="join" outer-join="true"
   class="BookIt.Domain.Contact, BookIt.Core"  />

如果解决方案不起作用,请打开 show_sql 并让我们知道在lazy = false 和lazy = true 的情况下的结果

于 2012-12-07T18:53:59.670 回答