gorm - Grails MongoDB在执行addTo / removeFrom时没有更新列表

时间:2016-10-10 23:28:34

标签: mongodb grails plugins groovy gorm

我目前正在使用Grails 2.5.4,使用MongoDB插件(org.grails.plugins:mongodb:6.0.0.RC2),每当我尝试更新任何域类的List时,它都不起作用。

执行此代码时,remove函数会成功,save方法也会成功。但是数据库上的记录保持不变。

button.Click += async delegate { 
    Console.WriteLine("MessageBox.Show");
    var answer = await MessageBox.Show(this, "Stack", "Overflow", "", "");
    Console.WriteLine(answer);
};

消息域类映射如下:

 def updateMessage(){
    String id = '-1001066675850-7184293742'
    Message message = Message.findById(id)
    def entity = message.entities.get(0)
    message.removeFromEntities(entity)
    message.save(validate: true, failOnError: true, flush: true)
    render message.entities
}

}

和MessageEntity

class Message {

User fromUser
String text
Chat chat
Date sentDate
List<MessageEntity> entities
String sticker
Point location
String id
boolean pinned = false

static belongsTo = [entities: MessageEntity]

static constraints = {
    chat nullable: false
    fromUser nullable: false
    sentDate nullable: false
}

static hasMany = [entities: MessageEntity]

static mapping = {
    id generator: 'assigned'
    location geoIndex: '2dsphere'
}

我尝试从头开始创建新列表,将其添加到消息中,但仍然无法更新。

文档中是否有任何遗漏?

1 个答案:

答案 0 :(得分:0)

显然,对于MongoDB 6.0.0.RC2的GORM或我(和朋友的)环境中的某些特定设置,更新列表已被破坏。

通过降级到版本3.0.1来解决它。