具有关系的Coldfusion HQL查询 - 无法解析路径

时间:2012-05-19 00:19:17

标签: orm coldfusion hql entity-relationship railo

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

我有一个'Photoshoot'实体,与'Image'实体有一对多的关系。 我正在尝试拉出属于特定Photoshoot的所有图像,我想用HQL查询做这些,以便我可以进行一些特定的过滤。

我要回的是: 无法解决路径[Photoshoot.sPoothootGUID],意外令牌[Photoshoot] [FROM Image WHERE Photoshoot.sPoothootGUID ='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

1 个答案:

答案 0 :(得分:1)

我不确定为什么你的HQL失败 - 这个错误可能是由于区分大小写,但是“Photoshoot”似乎在你发布的代码中是正确的。

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

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