2012-05-19 52 views
1

我在使用HQL查詢從相關實體獲取數據時遇到了問題。帶關係的Coldfusion HQL查詢 - 無法解析路徑

我有一個'Photoshoot'實體,具有與'圖像'實體的一對多關係。 我想拉屬於一個特定的拍攝圖片,我想用HQL查詢做的所有圖像,這樣我可以得到一些具體的過濾

我正在找回是這樣的: 無法解決路徑[Photoshoot.sPhotoshootGUID],意外的標記[拍攝圖片] [FROM圖片WHERE Photoshoot.sPhotoshootGUID = '889440aa-A12A-11e1-8edb-d02788828044']

我想不通爲什麼 - 如果我拉回來使用'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> 

如果它有所不同, m運行在Railo 3.3.3.000

+0

你試過劃定範圍拍攝圖片,因爲它是可能的曖昧。 '從圖像img where img.Photoshoot.sPhotoshootGuid = ...' –

+0

給了一個去,但得到了同樣的錯誤。 –

回答

1

我不確定爲什麼你的HQL失敗 - 該錯誤可能是由於區分大小寫,但「Photoshoot」似乎在你發佈的代碼中是正確的情況。

作爲一種變通方法,你可以嘗試調整您HQL,使加盟明確:

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