Хорошей альтернативой в некоторых ситуациях является отображение панели сообщений верхнего уровня, чтобы остановить взаимодействие с пользователем, а затем скрыть ее снова, когда вы получите ожидаемый результат (асинхронно). Это позволяет браузеру выполнять фоновые задачи, но приостанавливает рабочий процесс до тех пор, пока вы не вернете свой результат.
Я не собираюсь давать никаких рекомендаций, потому что я не знаю качественной базы данных FOSS OO. Однако я бы сделал следующие наблюдения:
База данных объектно-ориентированного программирования - это не способ избежать SQL - вам нужны оба. Честно говоря, если вы плохо знаете SQL, ваша жизнь профессионального программиста, скорее всего, будет несчастливой.
ОО-базы данных зрелые - они существуют уже более 20 лет. Я лично впервые использовал его в большом проекте в финансовой индустрии 15 лет назад.
ОО-базы данных лучше всего использовать там, где реляционные базы данных терпят неудачу - я использовал их в сложном моделировании финансовых инструментов, оптимизации нефтепроводов и в телекоммуникационной работе.
Честно говоря, если вы не занимаетесь «передовыми технологиями», я бы держался подальше от объектно-ориентированных баз данных. Почти во всех случаях они недостаточно хорошо поддерживаются, незрелы и имеют различные проблемы с поддержкой на стороне клиента.
Проблема в том, что только реляционные базы данных (и некоторые нереляционные) получают 99% внимания, и, следовательно, стать гораздо более зрелым. ORM может быть обходным путем, но если вам нужна надежность, это действительно то, что вам нужно.
ОБНОВЛЕНИЕ:
Чтобы прояснить, я уверен, что есть несколько очень надежных OODB с открытым исходным кодом, но мои требования к «надежности» "больше, чем просто то, не дает ли он сбоев и не повреждает данные. Это надежность клиентских коннекторов, надежность интеграции с объектными моделями популярных языков и т. Д.