Grails mongodb-morphia插件 - 动态设置域集合映射

时间:2012-02-24 20:36:21

标签: grails mongodb dynamic dns morphia

我想根据grails应用程序中设置的参数将域类映射到DBCollection。我是Spring,Grails和MongoDB的新手。

我有一个包含几个大型集合的mongodb数据库,我想让用户选择要将域类映射到哪个集合。理想情况下,域类可以反复重新映射,在不同的集合之间切换。

我正在设计web-app的前端,后端在别处处理......我将知道Mongodb数据库名称,但该数据库中的集合的数量和名称将是未知的

不幸的是,Morphia的Entity表示法只接受一个String常量,所以我无法将动态传递给它。我想我需要手动取消映射域类,更改集合设置,并重新映射类(删除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)
        }
}

P.S。我尝试使用静态映射,但是mongodb-morphia插件似乎没有注册我指定的集合。

谢谢

1 个答案:

答案 0 :(得分:0)

您应该阅读Morphia-Plugin提供的用户指南。见这里:http://jkuehn.github.com/gorm-mongodb/

你的想法太过分了;)