Я использую hibernate для отображения моих моделей в дб.
Используя самодельный движок на основе API CriteriaBuilder, я пытаюсь присоединить (получить) отношение только по требованию пользователя.
Таким образом, для субъекта Страна, которая имеет:
- Набор регионов (OneToMany)
- Пространственная информация о стране (OneToOne)
Если пользователь просит включить отношения, я выполняю выборку:
this.root.fetch(relation.getField.getName(), relation.joinType());
Если отношение является OneToOne:
Как и ожидалось, моя сущность теперь держит объект.
Если пользователь не указывает включение, то объект будет содержать экземпляр HibernateProxy, который я отбрасываю при сериализации.
Если отношения являются OneToMany:
В обоих случаях, включен или нет, объект содержит экземпляр PersistentSet.
Итак, мой вопрос: нормально ли, что hibernate возвращает мне экземпляр PersistentSet, даже если я попросил объединение получить выборку?
Если да, из PersistentSet, могу ли я определить, что я просил его получить?