Я был очень удивлен, узнав, что Hibernate автоматически сохраняет грязные объекты в конце транзакции, без явных вызовов на что-то вроде
dao.save(object)
Я имею в виду ситуацию, описанную > этот поток
Мой вопрос: есть ли способ отключить это поведение? На первый взгляд это автоматическое сохранение кажется довольно опасным, потому что вам нужно знать, какие объекты связаны с сеансом, а какие нет, и кажется довольно легко что-то сэкономить по ошибке. Можете ли вы сказать мне, каковы преимущества этого подхода с автоматическим сбережением? Я почти ничего не вижу. Я хотел бы всегда явно ссылаться на dao.save(object), чтобы что-то обновить.
Я слышал об одном возможном обходном пути к этому, который использует entityInterceptor на вашем sessionFactory. Этот пользовательский объектInterceptor переопределит метод findDirty, чтобы никогда не найти что-либо грязное, но в этом случае я полагаю, что dao.save также не будет работать. Любые идеи?