Hibernate - Как сохранить новый элемент в коллекции без загрузки всей коллекции

В моей модели есть коллекция, которая содержит набор «предыдущих версий» моего объекта корневого домена. Поэтому предыдущие версии являются «неизменяемыми», и мы никогда не захотим их обновлять, а будем добавлять только прошлые версии по мере их появления. Также «версионный» объект домена является довольно сложным и вызывает тяжелый доступ к базе данных для извлечения.

Когда у меня есть новая версия одного из этих объектов, я хочу сохранить ее вместе с другими без загрузки всего набора. Расширенный FAQ имеет несколько советов по этому поводу:

Почему Hibernate всегда инициализирует коллекцию, когда я только хочу добавить или удалить элемент?

К сожалению, API коллекций определяет возвращаемые значения метода, которые могут быть вычислены только при попадании в базу данных. Есть три исключения из этого: Hibernate может добавить к<bag>, <idbag> или же<list> объявлен сinverse="true" без инициализации коллекции; возвращаемое значение всегда должно быть истинным.

Если вы хотите избежать дополнительного трафика базы данных (т. Е. В критичном для производительности коде), реорганизуйте свою модель, чтобы использовать только связи «многие к одному». Это почти всегда возможно. Затем используйте запросы вместо доступа к коллекции.

Я новичок во всем этом и не уверен на 100% в том, как реорганизовать вашу модель, чтобы использовать только связи «многие к одному». Может ли кто-нибудь дать мне пример урока, чтобы я мог узнать, как это решит мою проблему?

Ответы на вопрос(3)

Ваш ответ на вопрос