Hibernate - Como persistir um novo item em uma coleção sem carregar toda a coleção

Eu tenho uma coleção no meu modelo que contém um conjunto de 'versões anteriores' do meu objeto de domínio raiz. As versões anteriores são, portanto, "imutáveis" e nunca iremos querer atualizá-las, e só queremos adicionar versões anteriores à medida que surgirem. Além disso, o objeto de domínio 'versionado' é bastante complexo e faz com que o acesso pesado ao banco de dados seja recuperado.

Quando tenho uma nova versão de um desses objetos, quero salvá-lo com os outros sem carregar o conjunto inteiro. O FAQ avançado tem alguns conselhos sobre isso:

Por que o Hibernate sempre inicializa uma coleção quando eu quero apenas adicionar ou remover um elemento?

Infelizmente, a API de coleções define valores de retorno de método que só podem ser calculados atingindo o banco de dados. Existem três exceções: o Hibernate pode adicionar a um<bag>, <idbag> ou<list> declarado cominverse="true" sem inicializar a coleção; o valor de retorno deve ser sempre verdadeiro.

Se você quiser evitar o tráfego extra do banco de dados (ou seja, no código crítico de desempenho), refatore seu modelo para usar somente associações de muitos para um. Isso é quase sempre possível. Em seguida, use consultas no lugar do acesso à coleta.

Eu sou novo em tudo isso e não tenho 100% de certeza sobre como refatorar seu modelo para usar somente associações de muitos para um. Alguém pode me dar um exemplo de um tutorial para que eu possa aprender como isso resolverá meu problema?

questionAnswers(3)

yourAnswerToTheQuestion