Не удается получить плагин GORM mongodb для сохранения новой записи, даже с явным сбросом - PullRequest
2 голосов
/ 09 марта 2012

Что я знаю: mongod работает, база данных существует, коллекция существует, я могу делать вставки с помощью консоли mongodb, а Grails устанавливает соединение с экземпляром mongod (то есть я могу запрашивать и т. Д.) 1001 *

Другие детали: 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, но сообщения об ошибке нет. Что-то я сделал не так?

Ответы [ 3 ]

2 голосов
/ 14 марта 2012

Я новичок в Grails, так что кто-то другой может или не может исправить меня.В любом случае проблема заключается в том, что плагин Mongodb GORM по умолчанию не допускает нулевые значения любых полей, которые вы указываете в классах домена Mongodb.

На данный момент я не уверен, как изменить это поведение, нообновлю это, если я когда-нибудь это выясню.

1 голос
/ 19 июня 2012

Вы пытались сделать свои свойства обнуляемыми?Как то так:

static constraints = 
{
   someId nullable: true
}
0 голосов
/ 14 ноября 2013

Выполните метод validate () перед сохранением и посмотрите на результат, скорее всего, существует некоторая ошибка ограничения, о которой вы можете не знать.

...