Заставляем ORM работать в ColdFusion 9

Я настраиваю ORM в приложении ColdFusion, которое работает с базой данных Oracle 11g (с использованием диалекта Oracle10g в application.cfc), но отношения не загружаются. Вот сопоставления, которые я настроил. Это таблица тегов с внешним ключом в таблице tag_category:

<cfcomponent output="false" persistent="true" entityname="tag" table="tag">
    <cfproperty fieldtype="id" name="id" column="tag_id">
    <cfproperty fieldtype="column" name="tag_name" column="tag_name">
    <cfproperty fieldtype="column" name="tag_category_id" column="tag_category_id">     
    <cfproperty fieldtype="many-to-one" name="category" cfc="tag_category" fetch="join">
</cfcomponent>

а вот таблица tag_category:

<cfcomponent output="false" persistent="true" entityname="tag_category" table="tag_category">
    <cfproperty fieldtype="id" name="id" column="tag_category_id">
    <cfproperty fieldtype="column" name="tag_category_name" column="tag_category_name">
</cfcomponent>

Когда я запускаю EntityLoad («тег») и выгружаю результаты, я вижу содержимое таблицы тегов, но свойство категории отображается как пустая строка. Когда я смотрю на выполняемый SQL, есть только простой запрос без соединений. И, наконец, когда я включаю сохранение и смотрю на сгенерированный XML Hibernate, никакие отношения не указываются. Что происходит? Как я могу заставить это работать?


person stomcavage    schedule 13.12.2011    source источник


Ответы (2)


Только что разобрался. Я установил savemapping = "true" в моем application.cfc, который сгенерировал пакет файлов конфигурации Hibernate XML. Когда я обновлял CFC, ColdFusion все еще использовал XML-файлы Hibernate в качестве источника конфигурации вместо обновленных CFC. Я предполагал, что файлы XML будут регенерироваться каждый раз, когда я выполняю ormReload (), но похоже, что это не так.

person stomcavage    schedule 13.12.2011

Я думаю, вам нужно установить для ленивой загрузки значение false, так как по умолчанию это правда, например:

<cfproperty fieldtype="many-to-one" name="category" cfc="tag_category" fetch="join" lazy="false">

Ознакомьтесь с cfdocs, раздел отложенной загрузки.

person Barry Jordan    schedule 13.12.2011