Как использовать транзакцию в MongoDB 4.0 с использованием QueryDSL и Morphia?

#mongodb #groovy #spring-data #querydsl #morphia

#mongodb #groovy #spring-данные #querydsl #morphia

Вопрос:

Я использую QueryDSL 4.2.1, Morphia 1.3.2 и драйвер Java MongoDB 3.5.

После обновления сервера MongoDB до версии 4.0 я обновил драйвер mongo-java до версии, поддерживающей транзакции в MongoDB.

QueryDSL, похоже, отказался от интеграции с Morphia в версии 1.3.2. Возможно, решение заключается в замене Morphia данными Spring.

Как мне использовать транзакции в MongoDB 4.0 с использованием QueryDSL и Morphia?

Ответ №1:

Я не знаю о QueryDSL, но с помощью самого Morphia вы можете начать сеанс через Datastore :

https://morphia.dev/2.0.0/javadoc/dev/morphia/Datastore.html#startSession ()

Более подробную информацию можно найти здесь:https://morphia.dev/2.0.0/guides/transactions

Комментарии:

1. Более интересный метод, вероятно, с помощью transaction morphia.dev/2.0.0/javadoc/dev/morphia/…

2. QueryDSL использовался в качестве общего языка в приложении, написанном на Groovy и Java, для доступа к Oracle и Mongo. Чтобы использовать транзакции Mongo, нам пришлось бы использовать более новые версии Morphia, что было невозможно из-за интеграции с QueryDSL. Итак, мы заменили Morphia данными Spring, но генерацию кода с использованием maven-compiler-plugin также пришлось заменить плагином Maven APT. Сборка не удалась, и решением было бы разбить приложение на модули, но это не то, что мы хотели. Итак, мы решили отказаться от QueryDSL.