这个让我感到沮丧。
我已经设置了ORM。当我运行ORMReload()
时,我收到以下错误。
无法为CFC产品中的关系属性类别加载目标CFC productCategories。
Application.cfc ORM配置
this.ormEnabled = true;
this.ormsettings = {
cfclocation = "_model"
};
products.cfc
component persistent="true" table="products" {
property name="id" fieldtype="id";
property name="productcode" ormtype="string";
property name="title" ormtype="string";
property name="introduction" ormtype="text";
property name="description" ormtype="text";
property name="image1" ormtype="string";
property name="image2" ormtype="string";
property name="image3" ormtype="string";
property name="deletedAt" ormtype="date";
property name="category" fieldtype="many-to-one" cfc="productCategories" fkcolumn="categoryid";
//init()
public function init(){
return this;
}
//getByID()
public function getByID(required id=""){
return entityLoadByPK("products",'18');
}
}
productCategories.cfc
component persistent="true" table="productCategories" {
property name="id" fieldtype="id";
property name="description" ormtype="string";
property name="products" fieldtype="one-to-many" cfc="products" fkcolumn="categoryid";
//init()
public function init(){
return this;
}
public function get(){
return entityload("productCategories");
}
}
我可以通过设置cfc参数中的完整路径来解决此错误,例如cfc="_model.products"
,但后来我收到以下错误。
表产品中的关联是指未映射的类:
两个CFC都在同一个文件夹中。我试过重启CF Server。拉出我的头发。任何建议都非常感激。
答案 0 :(得分:1)
每次更改模型时重新加载ORM。 检查对象和关系名称的所有名称(区分大小写)。
使用“_model”检查,不使用CFC名称。
错误消息表示未映射的类,因此一个或多个名称错误。 或者对于hibernate不存在(重新加载是必要的)。
答案 1 :(得分:1)
尝试将Application.cfc中的cfclocation设置更改为绝对路径而不是相对路径:
this.ormEnabled = true;
this.ormsettings = {
cfclocation = ExpandPath( "_model" )
};
答案 2 :(得分:0)
感谢FLepage和CfSimplicity提供您的建议。
我最终解决了文件夹上的权限问题。我将整个应用程序移动到另一个开发服务器,它工作正常(更多的头发拉动)..最终检查有问题的版本的文件夹的权限,一旦我重置权限,以提供所有necassary访问它工作正常..
我已将文件从PC复制到Mac,因此当我复制文件/文件夹时,OSX必须对文件夹权限做了些什么。不好玩。
再次感谢!