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