【问题标题】:Coldfusion 10 ORM "Error while resolving the relationship"Coldfusion 10 ORM“解决关系时出错”
【发布时间】:2012-11-17 23:50:06
【问题描述】:

我已经有一个 ORM 应用程序在我的笔记本电脑上本地运行了两年,用于开发目的,并且 ORM 映射一直运行良好。该应用程序最初是在 CF9 中创建的,但我的本地 CF 在 CF10 发布后不久就升级到了 10。从那时起,我有很多时间在这个应用程序上进行额外的开发。前几天,基于迁移,我不得不更改应用程序的一些目录路径。在更改了我在 CF 和应用程序中的所有映射后,我再次启动应用程序并得到了这个 gem:

解决 cfc com.client.model.sessions 中的关系 SpeakerEvalQuestions 时出错。检查此属性的列映射。

*请忽略我在命名我的一个 orm 对象“会话”时的错误判断。

路径从\web\sites\thesite\更改为\web\sites\thesite\www\

/com 现在是到\web\sites\thesite\www\com 的CF 映射

以下是来自 CFC 的花絮:

<cfcomponent output="false" persistent="true" table="tblSessions">

<cfproperty
    name="sessionID"
    fieldtype="id"
    type="numeric"
    sqltype="int"
    generator="identity" />

<cfproperty
    name="ses_key"
    type="string"
    sqltype="varchar(40)" />

<cfproperty
    name="sessionTitle"
    type="string"
    sqltype="varchar(250)" />

<cfproperty
    name="day1Start"
    ormtype="timestamp"
    sqltype="datetime" />

<cfproperty
    name="day1End"
    ormtype="timestamp"
    sqltype="datetime" />

<cfproperty
    name="day2Start"
    ormtype="timestamp"
    sqltype="datetime" />

<cfproperty
    name="day2End"
    ormtype="timestamp"
    sqltype="datetime" />

<cfproperty
    name="defaultCreditValue"
    type="numeric"
    sqltype="decimal(10,5)" />

<cfproperty
    name="sessionCode"
    type="string"
    sqltype="varchar(max)" />


<cfproperty 
    name="dateAdded" 
    fieldtype="column" 
    ormtype="timestamp"
    sqltype="datetime" 
    dbDefault="GETDATE()"
    insert="true" 
    update="false"  />


<cfproperty
    name="SpeakerEvalQuestions"
    singularname="SpeakerEvalQuestion"
    fieldtype="many-to-many" 
    cfc="SpeakerEvalQuestions"
    inversejoincolum="speakerEvalQuestionID"
    fkcolumn="sessionID"
    lazy="extra"
    orderby="sortOrder asc"
    linktable="tblSpeakerEvalQs_Sessions"
    type="array" />


</cfcomponent>

<cfcomponent output="false" persistent="true" table="tblSpeakerEvalQuestions">

<cfproperty
    name="speakerEvalQuestionID"
    fieldtype="id"
    type="numeric"
    generator="identity" />

<cfproperty
    name="question"
    type="string"
    sqltype="varchar(200)" />

<cfproperty
    name="scaleStartValue"
    type="numeric"
    sqltype="smallInt" />

<cfproperty
    name="scaleEndValue"
    type="numeric"
    sqltype="smallInt" />

<cfproperty
    name="sortOrder"
    type="numeric"
    sqltype="smallInt" />

<cfproperty
    name="display"
    type="numeric"
    sqltype="smallInt" />

<cfproperty 
    name="dateAdded" 
    fieldtype="column" 
    type="date"
    sqltype="datetime" 
    dbDefault="GETDATE()"
    insert="true" 
    update="false"  />


<cfproperty
    name="sessions"
    singularname="session"
    fieldtype="many-to-many" 
    CFC="sessions"
    fkcolumn="speakerEvalQuestionID"
    inversejoincolumn="sessionID"
    lazy="extra"
    orderby="day1start asc"
    linktable="tblSpeakerEvalQs_Sessions" />

</cfcomponent>

如果我从 session.cfc 中注释掉 SpeakerEvalQuestions 属性,那么应用程序将启动,当然其中一部分不起作用。但这至少证实了它的这一属性,而不仅仅是长期无法工作的属性更改中的第一个。

再一次,在我不得不改变路径之前,这很好用。有人有什么想法吗?

【问题讨论】:

  • 我知道现在 CF10/Tomcat 会区分大小写,所以请确保您的大小写与 cfc 的大小写匹配。
  • 我确实认为这是一种可能性,但似乎不是答案。
  • 我已经放弃解决这个问题,而是尝试启动一个新的 CF 实例。在那个新实例中启动它就像一个魅力。我对旧实例下发生的事情只有轻微的好奇。

标签: hibernate orm coldfusion hibernate-mapping coldfusion-10


【解决方案1】:

您是否打开了 CF Administrator 中的任何缓存选项?如果是这样,请关闭它们,或清除缓存。

【讨论】:

    猜你喜欢
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 2011-07-24
    • 1970-01-01
    相关资源
    最近更新 更多