0

Transfer-ORM を使用して Microsoft SQL データベースにマップすると、次の Coldfusion エラーが発生します。リンクテーブルをマッピングする transfer.xml ファイルの設定ミスが原因だと思います。複合 ID のニュアンスを完全に理解しているかどうかはわかりません。エラーが表示されますか?

エラー:

検索されたプロパティが見つかりませんでした オブジェクト「siteUsers.siteUsers」でプロパティ「siteID」が見つかりませんでした

インデックス.cfm:

<cfset transfer = application.transferFactory.getTransfer()>
<cfset obj = transfer.new("users.users")>
<cfdump var="#obj#">

transfer.xml: (関連部分 - siteUsers パッケージに問題があると思います)

<package name="users">

  <object name="users" table="users" >
    <id name="userID" type="string" generate="true"/>
    <property name="username" type="string" column="username" nullable="false"/>
    <property name="friendlyName" type="string" column="friendlyName" nullable="true"/>
    <property name="email" type="string" column="email" nullable="true"/>
    <property name="isEnabled" type="boolean" column="isEnabled" nullable="false"/>

    <onetomany name="pages" lazy="true">
      <link to="pages.pages" column="lastModUserID"/>
        <collection type="array">
          <order property="pageID" order="asc"/>
        </collection>
    </onetomany>

    <onetomany name="siteUsers" lazy="true">
      <link to="siteUsers.siteUsers" column="userID"/>
      <collection type="array">
        <order property="siteID" order="asc"/>
      </collection>
    </onetomany>

    <onetomany name="textContent" lazy="true">
      <link to="textContent.textContent" column="authorID"/>
      <collection type="array">
        <order property="textContentID" order="asc"/>
      </collection>
    </onetomany>

    <onetomany name="textContent" lazy="true">
      <link to="textContent.textContent" column="approvalUserID"/>
      <collection type="array">
        <order property="textContentID" order="asc"/>
      </collection>
    </onetomany>
  </object>

</package>

<package name="siteUsers">

  <object name="siteUsers" table="siteUsers" >
    <compositeid>
      <manytoone name="siteID" />
      <manytoone name="userID" />
    </compositeid>
    <property name="accessLevel" type="string" column="accessLevel" nullable="false"/>

    <manytoone name="siteID">
      <link to="sites.sites" column="siteID"/>
    </manytoone>

    <manytoone name="userID">
      <link to="users.users" column="userID"/>
    </manytoone>
  </object>

</package>

<package name="sites">
  <object name="sites" table="sites" >
    <id name="siteID" type="string" generate="true"/>
    <property name="themeID" type="string" column="themeID" nullable="true"/>
    <property name="sitename" type="string" column="sitename" nullable="false"/>
    <property name="menuName" type="string" column="menuName" nullable="true"/>
    <property name="menuID" type="string" column="menuID" nullable="true"/>
    <property name="description" type="string" column="description" nullable="true"/>
    <property name="basepath" type="string" column="basepath" nullable="true"/>
    <property name="reqApproval" type="boolean" column="reqApproval" nullable="false"/>
    <property name="enabled" type="boolean" column="enabled" nullable="false"/>
    <property name="redirectPath" type="string" column="redirectPath" nullable="true"/>

    <onetomany name="fileFolders" lazy="true">
      <link to="fileFolders.fileFolders" column="siteID"/>
      <collection type="array">
        <order property="fileFolderID" order="asc"/>
      </collection>
    </onetomany>

    <onetomany name="pages" lazy="true">
      <link to="pages.pages" column="siteID"/>
      <collection type="array">
        <order property="pageID" order="asc"/>
      </collection>
    </onetomany>

    <onetomany name="siteHandlers" lazy="true">
      <link to="siteHandlers.siteHandlers" column="siteID"/>
      <collection type="array">
        <order property="siteID" order="asc"/>
      </collection>
    </onetomany>

    <onetomany name="siteOptions" lazy="true">
      <link to="siteOptions.siteOptions" column="siteID"/>
      <collection type="array">
        <order property="siteOptionID" order="asc"/>
      </collection>
    </onetomany>

    <onetomany name="siteUsers" lazy="true">
      <link to="siteUsers.siteUsers" column="siteID"/>
      <collection type="array">
        <order property="siteID" order="asc"/>
      </collection>
    </onetomany>
  </object>

</package>
4

2 に答える 2

0

考えられる理由は、同じ関係に対してo2mとm2oの両方を定義していることです。私が覚えているように、これは許可されていません。

于 2010-01-21T23:07:57.683 に答える
0

Transfer-ORM を適切に構成するには、構成ファイルについて次の 3 つの点を検証する必要があります。

  1. 適切に形成された XML ですか?

  2. transfer.xsd スキーマ ファイルに準拠していますか?

  3. transfer.xml の関係は、データベースの関係と一致していますか?

#1 と #2 では検証に合格しましたが、#3 では間違った関係タグを使用していました。

より詳しい情報:

于 2010-01-22T16:18:51.710 に答える