Есть ли недостаток в использовании постоянных объектов в скоростных моделях? - PullRequest
0 голосов
/ 01 апреля 2012

У меня есть весеннее веб-приложение, которое использует Hibernate и Velocity.Это приложение MVC.Я передаю свои ModelMaps до уровня обслуживания.И я также использую свои объекты персистентности Hibernate на уровне обслуживания.У меня есть эти «доменные» объекты, которые в основном совпадают с объектами персистентности, за исключением того, что я включаю их в ModelMap и использую тогда по скорости.Мои вопросы: могу ли я покончить с объектом «домен» и использовать объекты персистентности в ModelMap, или это вызывает какие-то проблемы (может быть, проблемы с производительностью)?

Спасибо за помощь, Джо

Ответы [ 2 ]

0 голосов
/ 03 апреля 2012

Другой недостаток в том, что если вы используете Lazy Loading, вы, скорее всего, столкнетесь со сценарием, когда Hibernate захочет загрузить данные, которые вы используете только в представлении, но вы уже закрыли Session,Шаблон OpenSessionInView поможет вам справиться с этим, но это не всегда выглядит как чистое решение (см. Также здесь: Почему Hibernate Open Session in View считается плохой практикой? )

0 голосов
/ 03 апреля 2012

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

Ваша самая большая ошибка будет заключаться в обнаружении ошибок.Если что-то не загружается, возможно, вы уже отправили часть обработанного шаблона в ответе.Таким образом, вы, вероятно, захотите буферизовать вывод, VelocityLayoutServlet, по сути, делает это по умолчанию (не для шаблона макета, а для основного содержимого).VelocityViewServlet потребует от вас изменения настроек.Я не помню, какой, случайно.Посмотрите на класс VelocityView для получения дополнительной информации об этом.

...