Я использую hibernate и Spring для управления транзакциями.Не может показаться, что изоляция READ COMMITTED work
В настоящее время у меня есть объект Foo, который я хочу прочитать из базы данных, прежде чем обновлять его. Что-то вроде этого
@Transactional(isolation = Isolation.READ_COMMITTED)
public void update(Foo beingUpdated) {
Foo beforeUpdate = fooDao.read(beingUpdated.getId());
checkDifferences(beingUpdated, beforeUpdate);
fooDao.update(beingUpdated);
}
, но моя проблема в том, что, когда я прочитал Foo, возвращаемый объект является один обновляется, не совершил. Я не понимаю, как использовать изоляцию? Как я могу прочитать объект, переданный в базе данных, а не тот, который обновляется?
Цените любую помощь.
, который зависит от используемой СУБД - разные РСУБД реагируют по-разному на один и тот же параметр изоляции ... еще один момент: до тех пор, пока вы читаете и обновляете внутри того же сеанса/соединения, вы всегда получаете текущее значение, даже если он еще не зафиксирован ... – Yahia
В настоящее время я использую Oracle. Есть ли способ, которым я могу получить объект, занесенный в базу данных, даже на том же сеансе? Мне нужно проверить эти различия, потому что мне нужно передать его другому сервису. –
, если это вообще возможно, с некоторой комбинацией триггера и, возможно, AQ, возможно, вместе с некоторыми хранимыми процедурами ... – Yahia