ColdFusion Form在使用虚拟目录时找不到CFC

ColdFusion Form在使用虚拟目录时找不到CFC,orm,coldfusion,coldfusion-9,cfc,application.cfc,Orm,Coldfusion,Coldfusion 9,Cfc,Application.cfc,我有一些实体与关系: component name="Store" persistent="true" { property name="Products" fieldtype="one-to-many" cfc="Product"; } component name="Product" persistent="true" { property name="Store" fieldtype="many-to-one" cfc="Store"; } 上面的代码被简化了。我的项目

我有一些实体与关系:

component name="Store" persistent="true"
{
    property name="Products" fieldtype="one-to-many" cfc="Product";
}

component name="Product" persistent="true"
{
    property name="Store" fieldtype="many-to-one" cfc="Store";
}
上面的代码被简化了。我的项目位于
C:\ColdFusion9\wwwroot\StoreTracker
,一切都很顺利

但后来我不得不把它移到一个虚拟目录。我将项目移动到
C:\Projects\StoreTracker
,但现在ORM不再工作,出现以下错误:

无法为CFC产品中的关系属性存储加载目标CFC存储

找不到ColdFusion组件或接口存储

如果我通过使用以下内容完全限定名称:

property name="Store" fieldtype="many-to-one" cfc="entities.Store";
然后ORM工作。有人知道为什么将其移动到虚拟目录会导致ORM在错误的文件夹中搜索持久性实体,以及是否有更简单的方法来更改它正在搜索的文件夹,这样我就不必完全限定每个关系

编辑:

以下是
应用程序.cfc
中的相关部分:

this.ormSettings = { cfclocation="entities" };
this.mappings["/entities"] = "C:\Projects\StoreTracker\entities";
以及模型文件夹的文件夹结构:

C:\Projects\StoreTracker\entities

实体文件夹下没有子文件夹,我的所有持久实体都在其中

如果我将以下行添加到
Application.cfc
,我就能够让它正常工作:

this.ormSettings = { cfclocation="entities" };
this.mappings["/entities"] = "C:\Projects\StoreTracker\entities";

虽然我不知道为什么会这样。如果没有它,CF ORM似乎可以很好地读取实体,如果它们只有简单的属性,但是当存在关系时,它会突然说它找不到相关的CFC。可能是一个bug?

如果虚拟目录是指在Apache或IIS中设置的虚拟目录,那么这是有意义的。这些虚拟目录存在于web服务器中,而不是ColdFusion中。CF对它们一无所知

您可能需要创建到应用程序的ColdFusion映射。我不确定你的应用程序是如何构造的,或者你把你的ORM对象放在哪里,但是你可能想在你的Application.cfc的pseudo constructor区域中添加类似的东西

<cfset application.mappings["/StoreTracker"] = "C:\Projects\StoreTracker" />


更新:哦,别忘了使用ormReload()

请从Application.cfc提供ORM配置的内容。这可能是由于缺少正在设置的“cfclosition”属性,或者通过“savemapping”对Hibernate映射进行了积极的缓存,但在显示设置之前无法确定是否存在这些设置。@ShawnHolmes我添加了一些详细信息。谢谢,这非常有效。我最终映射了保存实体的文件夹。这也行:)请随意编辑我的答案,以反映实际工作的代码。