У меня есть объект:
public class Data {
private long id;
private long referenceCount;
private Blob dataCache;
/* getters and setters for the above */
}
Соответствует это отображение:
<hibernate-mapping>
<class name=Data" table=DATA">
<id name=id" type="long">
<column name=DATA_ID" precision="20" scale="0" />
<generator class="assigned" />
</id>
<property name="referenceCount" type="long" generated="always" insert="false" update="false">
<column name="REFERENCE_COUNT" precision="10" scale="0" not-null="true" />
</property>
<property name=dataCache" type="blob">
<column name="DATA" />
</property>
</class>
</hibernate-mapping>
Содержимое 'dataCache' может быть довольно большим.
Вот где это становится сложным: значение referenceCount устанавливается триггером,
вызывается объектом, который не имеет отношения отображения к объекту Data. Как только
когда я сохраняю этот объект, я должен обновить объект данных - который может или не может
уже загружен сессией - чтобы сохранить счетчик ссылок
правильный. Оставляя в стороне, рассматривается ли это как хорошая идея, я должен убедиться,
что значение referenceCount актуально в моем локальном сеансе, но я
НЕ хочу перезагружать двоичный объект dataCache. Я мог бы установить ленивый атрибут на
это свойство, но я не уверен, что оно будет действовать так, как я надеюсь, будет.
Как мне это сделать? Я думаю, что я мог бы взглянуть на это так: «Как я могу удалить объект из кэша сеанса, не загружая этот объект, если его там еще нет?»