Возможно ли, чтобы приложение grails выбирало между гибернацией и mongodb во время выполнения

#grails

#grails

Вопрос:

Я пытаюсь создать приложение Grails. Я хочу, чтобы пользователь, который устанавливает это приложение grails на свой экземпляр tomcat, мог выбирать, хотят ли они использовать hibernate с СУБД или mongodb при развертывании приложения.

  1. Возможно ли иметь оба плагина hibernate и mongodb и выбирать один на основе файла конфигурации?

  2. В качестве альтернативы, возможно ли создать две сборки приложения grails с точно таким же кодом, но разными плагинами, чтобы пользователь мог выбрать любую сборку?

Ответ №1:

Второй вариант — ваш лучший выбор. Если установлены оба плагина, вам нужно использовать mapWith атрибут, чтобы указать, какой использовать, и это статическое поле в классах вашего домена.

Но если вы не установите плагин Mongo, все классы домена будут использовать Hibernate, а если вы удалите плагин Hibernate и установите плагин Mongo, все классы домена будут использовать Mongo. Это было бы очень просто написать сценарий — либо запустить grails war (для Hibernate), либо grails uninstall-plugin hibernate , grails install-plugin mongodb и grails war (для Mongo).