Лучшая практика в ColdFusion ORM - PullRequest
3 голосов
/ 01 ноября 2010

Вопрос о ColdFusion ORM

Мы используем ColdFusion 9 в течение последних 6 месяцев, и хотя мы использовали некоторые из новых функций, ORM - это то, чего мы избегали, потому что мы обычно работаем над тем жеочень большой сайт.В течение многих лет мы использовали Apache OBJ, но затем мы вернулись к CF и использовали наши собственные объекты DAO, сгенерированные из таблиц, для обработки базового CRUD.Эти объекты являются базовыми и должны быть регенерированы вручную для изменения схемы и вообще не моделируют отношения таблиц.В дополнение к этому у нас есть набор классов шлюза для многостоловых запросов.Хотя все это очень индивидуально, эти DAO и шлюзы, тем не менее, дают нам отличный контроль над выполняемым нами SQL-кодом, например, с помощью подсказок блокировки и оптимизатора.Наш сайт занят, но наша база данных очень эффективна.

Так много для урока истории: смысл в том, что у нас скоро будет новый сайт, который будет написан с нуля для обработки финансовых транзакций.Мы обычно использовали бы наши вышеупомянутые объекты DAO для обработки CRUD, а затем обычный набор объектов шлюза для объединений в несколько таблиц, но я подумал, что мы могли бы исследовать использование встроенного CF ORM ...

Так что, имея это в видуЯ хотел бы услышать об уроках, советах и ​​хитростях, которые другие могут поделиться в отношении использования ORM на загруженном финансовом сайте.Например:

Какой лучший способ очистить ваш SQL?Какие советы у вас есть для транзакционного ORM?Как вы настраиваете разработку и живые сайты для ORM?Как насчет HQL?Когда мы должны сами делать SQL вручную?!

Заранее спасибо!

1 Ответ

4 голосов
/ 01 ноября 2010

Короткий ответ, ДА! перейти на ORM !!!

Какой лучший способ очистить ваш SQL?

ormflush()

Какие у вас есть советы по транзакционному ORM?

<cftransaction> или transaction {} в CFScript отлично работает и даже работает в DSN, значительно улучшено в 9.0.1! часы http://tv.adobe.com/watch/max-2010-develop/coldfusion-undocumented/

Как настроить сайты разработки и живые сайты для ORM?

То же, что и без ORM, но вы можете посмотреть this.ormSettings.dbCreate, если вы имеете в виду создание БД

А как насчет HQL?

Как насчет этого? :) Используйте его, когда вам нужен массив объектов, но ничто не мешает вам использовать старый добрый <cfquery>

Когда мы должны сами делать SQL вручную?!

Когда вы чувствуете, что HQL не делает то, что вы хотите.

Проверьте: На что обращать внимание в ColdFusion 9 с CF-ORM , однако имейте в виду, что некоторые пункты больше не соответствуют 9.0.1

...