2012-05-19 4 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> 

--- Photoshoot ---

<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 Query - -

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

Если это имеет значение, m работает на Railo 3.3.3.000

+0

вы пробовали обзорный как это Фотосессию это возможно неоднозначно. 'from Image img, где img.Photoshoot.sPhotoshootGuid = ...' –

+0

Дал это, но получил ту же ошибку. –

ответ

1

Я не уверен, почему ваш HQL не работает - эта ошибка может быть вызвана чувствительностью к регистру, но «Фотосессия», похоже, находится в правильном случае в коде, который вы опубликовали ,

В качестве временного решения можно попробовать регулировать ваш HQL, чтобы сделать присоединиться к явному:

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