我想根据 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)
}
}
PS 我尝试使用静态映射,但是 mongodb-morphia 插件似乎没有注册我指定的集合。
谢谢