Как заставить ORM работать в ColdFusion 9 - PullRequest
2 голосов
/ 13 декабря 2011

Я настраиваю 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 ("tag") и дампВ результате я вижу содержимое таблицы тегов, но свойство категории отображается в виде пустой строки.Когда я смотрю на SQL, который выполняется, есть только простой запрос без соединений.И наконец, когда я включаю сохранение и смотрю на сгенерированный XML Hibernate, никакие отношения не определяются.В чем дело?Как я могу заставить это работать?

Ответы [ 2 ]

2 голосов
/ 13 декабря 2011

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

0 голосов
/ 13 декабря 2011

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

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

Проверьте cfdocs , раздел ленивой загрузки.

...