У меня есть следующий код:Грязная проверка не работает с прикрепленным объектом из другого потока
completableFuture
.thenApply(x -> transactionTemplate.execute(s -> {
repository.save(entity);
entity.update();
return entity;
}));
entity
является сущностью из другого потока, что я должен обработать после вызова асинхронного. Проблема в том, что когда я вызываю entity.update()
, и некоторые данные изменены, Hibernate не выдает запрос на обновление. Если я положил repository.save(entity)
после entity.update()
, все будет хорошо, но это показалось мне немного странным.
Не должен ли быть грязный контрольный акт в этих случаях?
Что именно вы подразумеваете под сущностью из другого потока? Транзакции и сущ. Сущности обычно связаны с потоком и не являются потокобезопасными, поэтому при использовании сущности через потоки могут возникать всевозможные вещи. «Ничто», по-видимому, не самый страшный вариант. –
Не можете ли вы просто перечитать объект по идентификатору, чтобы иметь копию «freah» в текущем потоке? – StanislavL
@JensSchauder Я вижу, но я думал, что повторная привязка решит эту проблему. –