методе, помеченном как транзакционный я её получил, сделал части её элементов кручу-верчу (добавил новые в одно из полей-списков)
Но т.к. это только часть изменений - лезу в базу за дополнительными данными.
И при выполнении someRepository.findAllById(...) почему-то hibernate решает, что нужно сохранить эту большую Entity. Это видно в выводе в консоль - появляются insert into...
репозиторий, в который лезу, не имеет отношения ни к этой сущности ни к её вложенным данным, вообще "левая" таблица, просто находящаяся в той же базе.
Вопрос: на каком основании Hibernate пытается сохранить не полностью подготовленную к записи сущность. И какого он это делает при выполнении не относящейся к ней выборки?
Попробуй покопать в сторону dirty checking хибернейтовского
И дело походу в этом
гуглю. Но все найденные источники говорят, что проверка на измененность производится на закрытии сессии. Пока не понимаю, как это связано...
Обсуждают сегодня