2010-11-25 2 views
0

Ну, это странное требование, и я думаю об этом, если это возможно или нет. Вторая мысль приходит, является ли это приемлемым проектным решением или нет.Обмен плагином доменов приложения grails среди клиентов приложений с множеством графств и подмножество классов доменов

Вот сценарий:

Мы имеем базу данных, состоящую из примерно 160 таблиц. Мы создали плагин Grails ORM поверх устаревшей базы данных.

Теперь у нас есть разные приложения (плагины), которые будут использовать этот плагин orm.

Каждое приложение может работать автономно и в сочетании с другими приложениями.

Каждое приложение в основном использует подмножество полной модели ORM, разработанной в плагине.

Чтобы запустить автономное приложение, я хочу создать отдельную базу данных, содержащую таблицы, необходимые для приложения, а не всю базу данных из 160 таблиц. Но поскольку автономное приложение имеет зависимость от плагина ORM, определенного выше, возможно ли или нет иметь только подмножество таблиц или я должен создать полную схему базы данных?

Сообщите мне, если какая-либо дополнительная информация требуется для понимания вопроса.

Спасибо, Alam Sher

ответ

0

Вы можете объявить ORM-отображаемые классы домена в папке src/groovy и, следовательно, не отображать что-либо в плагине, а затем расширять необходимые классы в конечных приложениях. Будут использоваться сопоставления, объявленные в src.

Это добавляет дополнительную сложность, но делает вещь.

+0

Не могли бы вы показать мне образец или ссылку, где это было сделано? Это кажется интересным, хотя. – 2010-11-25 13:23:41

0

Я предлагаю дробя ORM плагин на отдельные "суб-ОРМ" плагинов. Конечно, эти плагины «подрамника» могут зависеть от других «подрамных» плагинов. Разделительные линии между плагинами «подрамника» должны определяться IMHO бизнес-доменом.

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

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

+0

Потребность в таблицах целевых приложений может быть разной, поэтому вам нужно будет изменить соответствующий подплагин для каждого подзадачи. Зависимости от подключаемого модуля также будут непредсказуемо изменяться. И если Grails использует оптимистичную блокировку, не будут ли конфликты параллелизма обрабатываться обычными объектами Grails? – 2010-11-25 12:57:41

Смежные вопросы