Звучит так, как будто вы читаете незафиксированные данные. Вы уверены, что правильно настроили уровень изоляции?
Мне кажется, что вы смешиваете константы из двух разных классов: разве вы не должны передавать TransactionDefinition.ISOLATION_SERIALIZABLE
вместо Connection.TRANSACTION_SERIALIZABLE
в метод setIsolationLevel
?
Почему вы все равно устанавливаете уровень изоляции? Уровень изоляции Oracle по умолчанию (чтение зафиксировано), как правило, является наилучшим компромиссом между согласованностью и скоростью и должен хорошо работать в вашем случае.