ColdFusion 9 ORM "LEFT JOIN" в объединении карт - PullRequest
4 голосов
/ 04 января 2012

Прошло много времени с тех пор, как я в последний раз использовал реализацию Hibernate в CF9, и сейчас я нахожусь в точке, где я не вижу леса для всех деревьев (вероятно, недостаточно кофе).

Я упростил пример, чтобы сделать его более понятным, но суть проблемы та же (сопоставление соединений в компонентах с несколькими таблицами должно предусматривать необязательные отношения).

Внутри моего пользовательского компонента у меня есть следующее свойство для включения адреса электронной почты, который хранится в отдельной таблице.

<cfproperty name="sEmail" 
   type="string" 
   default="" 
   table="UserEmail" 
   joincolumn="fkUserID" 
   inversejoincolumn="pkUserID" />

К сожалению, это создает ВНУТРЕННЕЕ СОЕДИНЕНИЕ, тогда как я хотел бы ВЛЕВОЕ СОЕДИНЕНИЕ, чтобы запись в другой таблице не была обязательной для извлечения / сохранения сущности.

Итак, мой вопрос:
Какой атрибут необходим, чтобы превратить его из обязательного (например, INNER JOIN) в необязательный (например, LEFT OUTER JOIN)?

Результаты Google были переполнены примерами, связанными с HQL, что делало эту опцию в основном непригодной для использования.

Заранее спасибо за ваши ответы.

Добавлено позже:

Сам Hibernate имеет для этого «необязательный» атрибут (http://www.scribd.com/doc/2732589/Hibernate-Reference-Documentation#outer_page_74), но, похоже, нет прямого перевода в атрибуты CF. Но, может быть, еще есть шанс, что кто-то еще может узнать способ.

1 Ответ

0 голосов
/ 04 января 2012

Я не верю, что есть выход из спящего режима. Я был бы удивлен, если бы был способ. В таких ситуациях я обычно заполняю переменную вручную с помощью пользовательского запроса в пользовательской функции (т.е. loadSEmail ()).

...