【问题标题】:Coldfusion HQL query with relationships - unable to resolve path具有关系的 Coldfusion HQL 查询 - 无法解析路径
【发布时间】:2012-05-19 00:19:16
【问题描述】:

我在使用 HQL 查询从相关实体获取数据时遇到问题。

我有一个与“图像”实体具有一对多关系的“照片拍摄”实体。 我正在尝试提取属于特定 Photoshoot 的所有图像,我想使用 HQL 查询来执行此操作,以便进行一些特定的过滤。

我得到的是这样的: 无法解析路径 [Photoshoot.sPhotoshootGUID],意外令牌 [Photoshoot] [FROM Image WHERE Photoshoot.sPhotoshootGUID = '889440aa-a12a-11e1-8edb-d02788828044']

我不知道为什么 - 如果我撤回 Photoshoot,我可以使用“getImages()”函数轻松获取相关图像。如果我使用完全相同的代码来获取另一个相关实体,它似乎工作正常!

这是我的实体的代码:

--- 图片---

<cfcomponent persistent="true" entityname="Image" table="tblImages_Base">
<!--- Identifier --->
<cfproperty name="sImageGUID" fieldtype="id" generator="guid" setter="false" />

<!--- Properties --->
<cfproperty name="sFileName" ormtype="string" />
<cfproperty name="sImageFolder" ormtype="string" dbdefault="" />

<cfproperty name="Active" ormtype="boolean" default=0 dbdefault=0 notnull="true" />

<!--- Many Images can belong to a single Photoshoot --->
<cfproperty name="Photoshoot" 
            fieldtype="many-to-one" 
            cfc="Photoshoot" 
            fkcolumn="fk_sPhotoshootGUID" 
            fetch="join"
            inverse="true"             
            />
</cfcomponent>

--- 拍照---

<cfcomponent persistent="true" entityname="Photoshoot" table="tblPhotoshoots">
<!--- Identifier --->
<cfproperty name="sPhotoshootGUID" fieldtype="id" generator="guid" setter="false" />

<!--- Properties --->
<cfproperty name="Active" ormtype="boolean" default=0 dbdefault=0 notnull="true" />
<cfproperty name="l_ImageOrder" ormtype="text" />

<!--- One Photoshoot can contain many Images --->
<cfproperty name="Images" 
            fieldtype="one-to-many" 
            cfc="Image" 
            fkcolumn="fk_sPhotoshootGUID" 
            type="array" 
            singularname="Image"
            />
</cfcomponent>

--- HQL 查询 ---

<cfquery name="Local.objPhotoshootImages" dbtype="hql">
    FROM    Image
    WHERE   Photoshoot.sPhotoshootGUID = '889440aa-a12a-11e1-8edb-d02788828044' 
</cfquery>

如果有什么不同,我在 Railo 3.3.3.000 上运行

【问题讨论】:

  • 您是否尝试过确定 Photoshoot 的范围,因为它可能不明确。 '来自图像 img where img.Photoshoot.sPhotoshootGuid =...'
  • 试一试,但遇到了同样的错误。

标签: orm coldfusion hql entity-relationship railo


【解决方案1】:

我不确定您的 HQL 失败的原因 - 该错误可能是由于区分大小写,但您发布的代码中的“Photoshoot”似乎是正确的。

作为一种解决方法,您可以尝试调整 HQL 以明确连接:

<cfquery name="Local.objPhotoshootImages" dbtype="hql">
FROM    Image
WHERE   fk_sPhotoshootGUID = '889440aa-a12a-11e1-8edb-d02788828044'
</cfquery>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 2019-01-28
    相关资源
    最近更新 更多