При определении моделей сложных доменов с помощью Hibernate - иногда вам нужно настроить отображение для повышения производительности. Это особенно верно, если вы имеете дело с наследованием (не уверен, сколько наследования в вашей модели). Конечная цель состоит в том, чтобы ваш запрос извлекался из как можно меньшего числа таблиц, при этом сохраняя модель вашего домена. Это может потребовать использования расширенных отображений наследования (подробнее об этом через секунду).
Регистрация SQL
Как упомянул Терри, вам нужно быть уверенным, что вы можете регистрировать фактический SQL, который передается в вашу базу данных (да, вы не совсем ушли от SQL с ORM). Вот отличная статья о настройке ведения журнала для Hibernate в CF9 от Rupesh:
http://www.rupeshk.org/blog/index.php/2009/07/coldfusion-orm-how-to-log-sql/
ФАЙЛЫ С КАРТОЧКАМИ HIBERNATE
В любое время, когда вы хотите сделать что-то помимо базового, вы должны быть уверены, что смотрите на фактические файлы отображения Hibernate, сгенерированные для ваших CFC. Обязательно установите следующее со всеми вашими параметрами гибернации в Application.cfc:
savemapping = true
Хотя свойства cfproperty позволяют вам определять многие аспекты сопоставления, на самом деле есть некоторые вещи, которые можно сделать только в файлах сопоставления Hibernate (и для этого существует множество ресурсов сообщества.
Карта наследования
Как я упоминал ранее, Hibernate предоставляет различные стратегии наследования для отображения. Это таблица на иерархию, таблица на подкласс, таблица на конкретный класс и неявный полиморфизм. Вы можете прочитать больше об этих типах в документах CF9 в разделе Advanced Mapping> Inheritance Mapping или в документации Hibernate (поскольку объяснение каждого из них может занять вечность).
Знание того, как отображаются ваши таблицы, очень важно при наследовании (и именно в этом случае Hibernate может генерировать ОГРОМНЫЕ запросы, если вы не настраиваете свои настройки).
Это то, о чем я могу подумать - если вы можете дать некоторую дополнительную информацию о вашей доменной модели - мы можем посмотреть, что еще можно сделать, чтобы настроить ее.