Может ли плагин Grails использовать источник данных из приложения, которое его использует? - PullRequest
2 голосов
/ 27 сентября 2011

Я хочу использовать плагин для разделения набора классов и контроллеров домена между несколькими приложениями. Каждое приложение будет использовать свою собственную базу данных. Я хотел бы, чтобы доменные классы в плагине сохраняли свои данные в той же базе данных, что и приложение.

Как мне это сделать, пожалуйста?

Ответы [ 3 ]

2 голосов
/ 27 сентября 2011

Плагин в основном объединяется с приложением, в котором он содержится, поэтому он использует настройки из приложения. Это включает в себя источник данных. На самом деле нет никакого способа указать в классе домена, какую базу данных он использует. Технически это не так в 2.0, поскольку он может выбирать, какой из нескольких источников данных использовать, но выбор зависит от определенных источников данных приложения.

0 голосов
/ 22 июля 2016

В Grails 3, если вы хотите разделить классы домена между несколькими приложениями, вы можете поместить классы домена в плагин.

Затем вы можете добавить этот плагин в качестве зависимости от нескольких приложений.

Ваше приложение получит доступ к этим классам домена.

Источник данных устанавливается в приложении верхнего уровня, использующем плагины.

Так что, если у вас есть только 1 настройка источника данных в приложении верхнего уровня, классы доменов плагинов будут созданы в исходном SQL, когда вы сделаете команда экспорта схемы grails.

0 голосов
/ 21 марта 2012

Ваш плагин может изменить файл DataSource.groovy, поэтому вы можете попробовать прочитать имя приложения из конфигурации и соответственно настроить источник данных. Возможно, это будет выглядеть так:

production {
    dataSource {
        jndiName = "java:comp/env/jdbc/${grailsApplication.metadata.'app.name'}"
    }
}
...