2

CFML (Railo) で親/サブ アプリケーション構造に取り組んでおり、永続的な (ORM) CFC の拡張に苦労しています。

私が望むのは、永続的な CFC が親アプリケーションに存在することです。それらには、さまざまなプロパティと、コア機能を扱ういくつかの関数が含まれます。

私のサブアプリでは、サブアプリ固有のプロパティを宣言する ORM CFC を拡張したいと考えており、サブアプリのニーズに固有の新しい関数を追加できるようにしたいと考えています。親アプリの CFC のコードに触れることなく、必須です。

サブアプリは独自のデータソースを使用するため、アプリケーションの起動時にサブのデータベースで生成された ORM テーブルが表示されることを期待しています。親アプリ (スタンドアロンで実行され、独自のデータソースがある) を起動すると、そこに生成されたテーブルが問題なく表示されます。ただし、子アプリを起動すると、(どちらのデータベースにも) テーブルは生成されません。

親 CFC に追加mappedSuperclass='true'して、子アプリで親 CFC を拡張する CFC を作成しようとしました。また、親アプリの ORM フォルダーを ORM 設定の CFCLocation フォルダーの配列に追加しようとしました。

ORM が機能していることを示す唯一の方法は、テーブルがデータベースに生成されているかどうかを確認することです。ORM CFC が機能しているかどうかを確認できる別の方法がある場合は、ぜひお知らせください。

確認するコードを次に示します。

親画像.cfc

<cfcomponent persistent="true" entityname="Image" table="tblImages_Base" extends="com.orm.SimpleBasePersistentObject" mappedSuperClass="true">
<!--- Identifier --->
<cfproperty name="sImageUUID" fieldtype="id" generator="assigned" setter="false" />

<!--- Properties --->
<cfproperty name="dtDateCreated" ormtype="timestamp" setter="false" />
<cfproperty name="dtLastUpdated" ormtype="timestamp" setter="false" />
<cfproperty name="sFileName" ormtype="string" />
<cfproperty name="iFileSize" ormtype="int" default="0" dbdefault="0" />
<cfproperty name="iWidth" ormtype="int" default="0" dbdefault="0" />
<cfproperty name="iHeight" ormtype="int" default="0" dbdefault="0" />
<cfproperty name="sImageFolder" ormtype="string" dbdefault="" />

<cfproperty name="Active" ormtype="boolean" default="0" dbdefault="0" notnull="true" />

<!--- Non persistant properties --->
<cfproperty name="sImagePath" type="string" persistent="false" />
<cfproperty name="sDefaultImageLocation" persistent="false" />

<!--- Many Images can have one image type --->
<cfproperty name="ImageType" 
            fieldtype="many-to-one" 
            cfc="ImageType" 
            fkcolumn="fk_sImageType" 
            fetch="join" 
            />
</cfproperty>
</cfcomponent>

サブ画像.cfc

<cfcomponent persistent="true" entityname="Image" table="tblImages_Base" extends="core.orm.Image">
</cfcomponent>
4

1 に答える 1