Удалите карту simpledb с помощью метапрограммирования в режиме разработки - PullRequest
0 голосов
/ 10 января 2012

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

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

String id
static mapWith = "simpledb"

Итак, мой вопрос, возможно ли удалить / скрыть эти два объявления повылет из классов доменов в зависимости от какого-то типа флага?

Тот же вопрос задается по-разному,

Есть ли способ в Groovy, наиболее вероятно метапрограммирование, с помощью которого я могу

  • Удалите объявление переменной из класса (собственно, класс домена)
  • Удалите статическое объявление mapWith из класса (снова класс домена)
  • Наконец, есть ли способ перебрать всемой класс домена и выполнить первые две операции в начальной загрузке.

Ответы [ 3 ]

1 голос
/ 11 января 2012

Если вы удалите mapWith = "simpledb", оно будет отображено с помощью Hibernate, и, вероятно, не очень хорошая идея разрабатывать на Hibernate GORM в dev и SimpleDB GORM в режиме prod - самая большая проблема заключается в том, что ваше приложение будет работать совсем иначе, потому что SimpleDB основан на непротиворечивости, и это означает, что вы будете получать неприятные сюрпризы в процессе производства по сравнению со старым добрым непротиворечивым миром реляционных БД ...

Спасибо за использование плагина simpledb!

Roman.

1 голос
/ 10 января 2012

Я не знаком с simpleDB, но я предполагаю, что если ваша карта выглядит следующим образом:

static mapWith = ""

Этот simpleDB не будет использоваться.

Так что вы можете добавить это кваш Config.groovy:

environments {
    production {
        mapWith = "simpleDB"
    }
    development {
        mapWith = ""
    }
    test {
        mapWith = ""
    }
}

Тогда вы можете получить доступ к значению Config из:

import org.codehaus.groovy.grails.commons.*

static mapWith = ConfigurationHolder.config.mapWith

Так что тогда, когда вы создаете производственную войну, вы получите «simpleDB», иначе выЯ получу пустую строку.Вот ссылка, чтобы узнать, как использовать Config.groovy: http://grails.org/doc/latest/guide/conf.html#config

Если я не знаю, как работает simpleDB, я приношу свои извинения.

0 голосов
/ 05 января 2013

Не пробовал, но я наткнулся на эту ссылку , которая утверждает:

SimpleDB / dev предоставляет локальный сервер SimpleDB, поэтому вы можете работать в автономном режиме, даже не имея в настоящее время учетной записи SimpleDB.

...