【发布时间】:2012-02-24 20:36:20
【问题描述】:
我想根据 grails 应用程序中设置的参数将域类映射到 DBCollection。我对 Spring、Grails 和 MongoDB 比较陌生。
我有一个包含多个大型集合的 mongodb 数据库,我想让用户选择将域类映射到哪个集合。理想情况下,域类可以一遍又一遍地重新映射,在不同的集合之间切换。
我正在设计 web 应用程序的前端,后端在其他地方处理...我会知道 Mongodb 数据库名称,但该数据库中集合的数量和名称将是未知的.
不幸的是,Morphia 的实体表示法只接受一个字符串常量,所以我不能将动态的东西传递给它。我在想我需要手动取消映射域类,更改集合设置,然后重新映射类(也许删除 bean?)。我将不胜感激有关如何完成此任务的任何建议,最好使用 mongodb-morphia 插件。
我创建了一个类似这样的 mongodb 域类:
package x
import java.util.Date;
import com.google.code.morphia.annotations.Embedded;
import com.google.code.morphia.annotations.Entity;
@Entity("someCollection")
class MongoLog {
def Mongo
def someService
Date a
String b
String c
Double d
static constraints = {
a(nullable:true)
b(nullable:true)
c(nullable:true)
d(nullable:true)
}
}
附:我尝试使用静态映射,但是 mongodb-morphia 插件似乎没有注册我指定的集合。
谢谢
【问题讨论】:
标签: grails mongodb dynamic dns morphia