Prevayler гарантирует, что все записи (через свои транзакции) синхронизированы. Но как насчет чтения?
Правильно ли, что грязное чтение возможно, если не используется явная синхронизация (в коде пользователя)?
Возможны ли они, если бизнес-объект читается как:
// get the 3rd account
Accont account = (Bank)prevayler.prevalentSystem().getAccounts().get(2);
Если так, какие стратегии синхронизации хороши для кода пользователя?
(Рассмотрим бизнес-объект A, содержащий коллекцию бизнес-объектов Bs),
- с использованием синхронизированной коллекции (например, B внутри A)
из пакета java.util.concurrent?
- синхронизировать чтение коллекций вне транзакций с
коллекция записывает внутри транзакций, например, используя
"синхронизированный (сборник)" код вокруг чтения и записи?