Я занимаюсь разработкой приложения с использованием Wicket в качестве слоя представления и JPA (Hibernate) в качестве ORM.Создание пользовательского интерфейса было забавным (даже с ajax) с использованием Wicket.Моя проблема возникает из-за интеграции постоянных объектов на страницах редактирования (страницы с доступом только для чтения не проблема с использованием LoadadableDetachableModel).
Я использую фильтр OSIV из весны, чтобы обеспечить открытую сессию для представления.Но, поскольку я сохраняю доменные объекты (сопоставленные классы @Entity) на страницах редактирования, я получаю страшное исключение отложенной загрузки при обращении к их свойствам в обратных вызовах ajax.
Я действительно не хочу этогоидите по дороге DTO / VO, так как я думаю, что это только раздувает код и требует от меня написания большого количества кода-шаблона.
Одна идея состояла в том, чтобы использовать объекты модели в представлении, объединить переданныев объекте с текущим сеансом гибернации и доступ ко всем получателям для полной инициализации объекта.после этого объект будет сохранен в виде (seesion) и станет отделенным.После сохранения я бы заново слил его и передал бы изменения.
Это рекомендуемый способ?Есть ли лучшие решения?Как ни странно, большинство книг / блогов / статей полностью игнорируют такую проблему.
Какое управление транзакциями вы бы предложили?Прямо сейчас я использую @Transaction на сервисном уровне.Как это изменится, если я буду использовать другие способы доступа к хранению данных в сеансах гибернации?
Любые указатели / ссылки приветствуются, так как я здесь немного потерялся ..
заранее спасибо