Добрый день, я понял, что такое сериализуемый уровень изоляции и чем он отличается от REPEATABLE READ
в Postgres. Сериализуемая транзакция способна обнаруживать циклы чтения и записи, поэтому только первая фиксация будет успешной.
Имея это в виду, имеет ли смысл использовать Hibernate's
оптимистическую блокировку, основанную на управлении версиями строк? Управление версиями строк будет вести себя точно так же, если столбец версии был обновлен, будет выдано исключение Java, которое отменит транзакцию. Кроме того, согласно вики Postgres, триггер должен быть создан, если некоторые обновления были сделаны вне код уровня приложения (например, простой sql-запрос, выполняемый psql). Так что, по моему скромному мнению, уровень Serializable — это замена оптимистической блокировки, так ли это, или есть некоторые случаи использования, когда вместо этого вы бы предпочли оптимистическую блокировку?