我有一些具有关系的实体:
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 产品中的关系属性 Store 加载目标 CFC 存储。
找不到 ColdFusion 组件或接口商店。
如果我通过使用完全限定名称:
property name="Store" fieldtype="many-to-one" cfc="entities.Store";
然后 ORM 工作。有谁知道为什么将它移动到虚拟目录会导致 ORM 在错误的文件夹中搜索持久实体,并且是否有更简单的方法来更改它正在搜索的文件夹,这样我就不必完全限定每个关系?
编辑:
这是中的相关部分Application.cfc
:
this.ormSettings = { cfclocation="entities" };
模型文件夹的文件夹结构:
C:\Projects\StoreTracker\entities
实体文件夹下没有子文件夹,我所有的持久实体都在那里。
如果我将以下行添加到Application.cfc
:
this.mappings["/entities"] = "C:\Projects\StoreTracker\entities";
虽然我不确定为什么会这样。没有它,如果实体只有简单的属性,CF ORM 似乎可以很好地读取它们,但是当存在关系时,它会说它找不到相关的 CFC。也许是一个错误?