2

2 つのマッピング ファイルがあります。建物と連絡先。各 Buildung には 1 人の ContactPerson がいます。だから私は1対1の関係を築いてきました

建物には「Meetingplace」という列があり、連絡先には「Meetingplace」と「ContactpersonName」という列があります

連絡先で、連絡担当者をミーティングプレイスに割り当てます。

例: 建物内の待ち合わせ場所はドイツです。今連絡先で、連絡担当者を 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 に答える