是否可以在應用程序間重用ColdFusion ORM對象?跨應用程序重複使用ColdFusion ORM實體/對象?
例如,我在名爲app1的文件夾中設置了一個名爲app1的已啓用ORM的應用程序。我創建了對應於一個部門的數據庫表中的department.cfc:
<cfcomponent>
<cfset this.name = "app1">
<cfset this.ormenabled = "true">
<cfset this.ormSettings = {
datasource = "myDS",
schema = "mySchema",
dialect = "Oracle10g",
logSQL = "false"
}>
我可以加載並從一個CFM文件轉儲內容:
<cfset item = EntityLoad("department")>
<cfdump var="#item#">
然後,我建立了一個相同的在名爲app2的文件夾中,名爲app2的啓用ORM的應用程序。我創建了一個department.cfc有一個擴展department.cfc在APP1:
<cfcomponent persistent="true" extends="my.path.app1.department">
</cfcomponent>
當我嘗試裝載和卸載的內容,我得到一個錯誤:
系統試圖使用一個未定義的值,通常表示編程錯誤,無論是在您的代碼或一些系統代碼。 空指針是未定義值的另一個名稱。
我已驗證路徑是否正確。例如。我能夠使用CreateObject來實例化對象:
<cfset item = CreateObject("component","my.path.app1.department")>
<cfdump var = "#item#">
我希望我可以指單個CFC和重複使用對象,但除非我失去了一些東西,它看起來像它可能是必要的在app2中重新創建對象。
你想獲取相同的實例或只是實例化相同的CFC?無論哪種情況,您都不能在ORM視角的單獨應用程序內重複使用同一個實體,而無需在兩個應用程序中定義實體的元數據。你可以有一個庫來實現這一點,並在使用相同的數據源/實體映射時擴展application.cfc等。 – AlexP
我試圖實例化相同的CFC,因爲我認爲使用相同代碼的多個CFC會是多餘的。我喜歡你的ORM庫應用程序的想法 - 我會試一試。 – cherdt