我在grails应用程序中使用simpleDB GORM,尽管simpleDB很棒,但在开发模式下,每次点击都需要几秒钟的时间,导致开发速度不那么快。
根据我的理解,simpleDB只有在域类在代码中有以下两行时才起作用
String id
static mapWith = "simpledb"
所以,我的问题是,是否可以根据某种标志从域类中动态删除/隐藏这两个声明?
同样的问题问得不一样,
Groovy中有没有一种方法,很可能是元编程,可以让我
- 从类中删除变量声明(实际上是Domain类)
- 从类中删除静态mapWith声明(再次为Domain类)
- 最后,有没有一种方法可以遍历我的所有域类,并在引导程序中执行前两个操作
如果删除mapWith="simpledb",它将与Hibernate映射,在dev模式下在Hibernate GORM上开发和在prod模式下在simpledb GORM上进行开发可能不是一个好主意-最大的问题是,您的应用程序会表现得非常不同,因为simpledb最终基于一致性,这意味着在生产中,与关系数据库的旧的一致性世界相比,你会得到令人讨厌的惊喜。。。
感谢您使用simpledb插件!
罗马人。
我不熟悉simpleDB,但我假设如果您的mapWith看起来像:
static mapWith = ""
不会使用那个simpleDB。
因此,您可以将其添加到Config.groovy:中
environments {
production {
mapWith = "simpleDB"
}
development {
mapWith = ""
}
test {
mapWith = ""
}
}
然后您可以从以下位置访问配置值:
import org.codehaus.groovy.grails.commons.*
static mapWith = ConfigurationHolder.config.mapWith
所以,当你创建一个生产战争时,你会得到"simpleDB",否则你会得到一个空字符串。以下是查看如何使用Config.groovy的链接:http://grails.org/doc/latest/guide/conf.html#config
如果我偏离了simpleDB的工作方式,我道歉。
我还没有尝试过,但我发现了这个链接,它声称:
SimpleDB/dev提供了一个本地SimpleDB服务器,因此您可以离线开发,甚至目前没有SimpleDB帐户。