Я разрабатываю клиент-сервер-приложение с Hibernate как слой persistence и Jersey REST для сетевого общения.Hibernate ленивая загрузка + Джерси REST = нетерпеливая загрузка?
Учитывая пользователя с ролями:
- , когда я хочу, чтобы отобразить все пользователи в клиенте, я не хочу, роли, которые будут загружены Hibernate, и я не хочу, чтобы они были отправлены в течение сеть
- , когда я хочу, чтобы изменить роли пользователя, я хочу, чтобы они были загружены и должны быть переданы
Я использую шаблон предварительной загрузки (http://bwinterberg.blogspot.com/2009/09/hibernate-preload-pattern.html), чтобы определить, какие свойства должны быть загружены Hibernate , Это прекрасно работает.
В случае 1, Hibernate не загружает роли, как и предполагалось. Но как только Джерси создает XML для отправки клиенту, он читает роли пользователя, что, в свою очередь, позволяет Hibernate загружать роли (и все остальные свойства). В конце, Hibernate всегда загружает полное дерево наборов данных, принадлежащих пользователю.
Я думал об отсоединении пользователя, закрыв сеанс, прежде чем передать пользователя на Джерси, поэтому Hibernate не может загрузить роли, но это, похоже, не имеет никакого эффекта.
Любые идеи?
Спасибо! Собираюсь попробовать это в понедельник. – Olvagor
Хорошо, я попытался сделать мелкую копию и установить пустую коллекцию. Это сработало хорошо. Но он также работал без копии, потому что, к счастью, изменение не привязано к базе данных. Теперь я установил свою пустую коллекцию непосредственно сущности из базы данных. Спасибо за ваш намек! – Olvagor