gpt4 book ai didi

orm - Coldfusion 9 ORM 映射问题

转载 作者:行者123 更新时间:2023-12-04 14:13:20 25 4
gpt4 key购买 nike

我有 CF9 ORM 映射的问题。

我不时收到以下错误(是的,它大部分时间都可以正常工作),

Mapping for component model.Pubs not found. Either the mapping for this component is missing or the application must be restarted to generate the mapping.

Application.cfc 中的 ORM 定义
    <cfscript>
this.datasource = "Pubs";
this.ormenabled = true;
this.ormsettings= {
dialect="MicrosoftSQLServer",
dbcreate="update",
eventhandling="true"
};
</cfscript>

<cfset this.mappings["/model"] = getDirectoryFromPath(getCurrentTemplatePath()) & "model" />

修复它的唯一方法是刷新 ORM 几次,这是通过在 Application.cfc 上点击 ?init=true 。它仍然是一个临时解决方案,但我需要知道它的根本原因并修复它。
<cfscript>          
if(structKeyExists(url, "init")) { ormReload(); applicationStop(); location('index.cfm?reloaded=true'); }

请指教。

谢谢!

最佳答案

我也有你的问题,但现在它工作正常。首先,如果你没有设置ormsettings.cfclocation ,ColdFusion 这样做:

If it is not set, ColdFusion looks at the application directory, its sub-directories, and its mapped directories to search for persistent CFCs. (see Spec)



这很容易出错,因为您永远不知道 ColdFusion 在所有目录中找到了什么。

当您将 cfclocation 添加到您的示例时,它应该可以工作:
this.ormsettings= {
cfclocation = ["/model", "/other/entities", "/more/other/entites"]
}

有很多关于如何指定 cfclocation 路径的讨论。对我来说,这种方式有效。

但是我的 cfclocation 的第一个元素总是一个应用程序映射,就像你的 this.mappings["/model"] .我没有在没有映射的情况下在 webroot 中使用 webserver 别名或 CFC 对其进行测试。您还应该避免冲突命名空间,例如 webroot 中的“model”目录,同时具有“/model”映射。

祝你好运:)

关于orm - Coldfusion 9 ORM 映射问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13610171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com