即使有明确的刷新,也无法获得GORM mongodb插件来保存新记录

时间:2012-03-08 22:42:40

标签: grails mongodb gorm grails-plugin grails-2.0

我所知道的:mongod正在运行,数据库存在,集合存在,我可以使用mongodb控制台进行插入,并且通过Grails建立与mongod实例的连接(即我可以查询等等)。 / p>

其他细节:Grails 2.01,mongodb插件1.0.0 RC4,hibernate插件2.01,mongodb 2.0.3

class Node {
    static mapWith = "mongo"

    static constraints = {
    }

    ObjectId id
    Integer someId //someId can be null or just non-existent
    String name
}

什么行不通:即使我明确地将flush设置为true,我也无法通过GORM插入任何数据。

def n = com.company.project.Node(name: "test")
n.save(flush:true)

我也在Grails控制台中试过这个,但是没有错误消息。有什么我做错了吗?

3 个答案:

答案 0 :(得分:2)

我是Grails的新手,所以其他人可能会或可能不会纠正我。无论如何,问题是Mongodb GORM插件默认情况下不允许您在Mongodb域类中指定的任何字段的空值。

截至目前,我不确定如何覆盖此行为,但如果我弄明白的话,我会更新此内容。

答案 1 :(得分:1)

您是否尝试过将您的属性设为可空?像这样:

static constraints = 
{
   someId nullable: true
}

答案 2 :(得分:0)

在保存之前执行validate()方法并查看结果,很可能存在一些您可能不知道的约束错误。

相关问题