Сериализация спящих объектов: выборка по требованию пользователя - PullRequest
0 голосов
/ 24 июня 2019

Я использую hibernate для отображения моих моделей в дб. Используя самодельный движок на основе API CriteriaBuilder, я пытаюсь присоединить (получить) отношение только по требованию пользователя.

Таким образом, для субъекта Страна, которая имеет:

  • Набор регионов (OneToMany)
  • Пространственная информация о стране (OneToOne)

Если пользователь просит включить отношения, я выполняю выборку:

this.root.fetch(relation.getField.getName(), relation.joinType());

Если отношение является OneToOne: Как и ожидалось, моя сущность теперь держит объект. Если пользователь не указывает включение, то объект будет содержать экземпляр HibernateProxy, который я отбрасываю при сериализации.

Если отношения являются OneToMany: В обоих случаях, включен или нет, объект содержит экземпляр PersistentSet.

Итак, мой вопрос: нормально ли, что hibernate возвращает мне экземпляр PersistentSet, даже если я попросил объединение получить выборку?

Если да, из PersistentSet, могу ли я определить, что я просил его получить?

...