2016-10-10 51 views
0

我目前正在使用带有MongoDB插件(org.grails.plugins:mongodb:6.0.0.RC2)的Grails 2.5.4,并且每当我尝试更新任何域类的列表,它不起作用。gorm - Grails MongoDB在进行addTo/removeFrom时没有更新列表

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

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 
} 

消息域类映射是这样的:

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' 
} 

}

而且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' 
} 

我试图创建从从头开始一个新的列表,将它添加到消息,它仍然不会更新。

有什么我在文档上丢失?

回答

0

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

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