CF ORM - 无法加载目标CFC

时间:2012-03-13 13:18:38

标签: hibernate orm coldfusion cfc

这个让我感到沮丧。

我已经设置了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。拉出我的头发。任何建议都非常感激。

3 个答案:

答案 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必须对文件夹权限做了些什么。不好玩。

再次感谢!