2

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

其他细节: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
}

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

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

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

4

3 回答 3

2

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

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

于 2012-03-13T20:36:36.510 回答
1

您是否尝试过使您的属性可以为空?像这样的东西:

static constraints = 
{
   someId nullable: true
}
于 2012-06-19T15:45:12.307 回答
0

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

于 2013-11-14T12:06:52.283 回答