带有MongoDB的Grail不能节省零值



这是Grails中的客户域类(v3.1):

class Customer {
   static mapWith = 'mongo'
   String id
   String email
   Boolean blacklisted
   String name
   String telephone
   Date dateCreated
   Date lastUpdated
   String language = 'en'
   static constraints = {
       email nullable: false
       blacklisted nullable: false
       name nullable: true
       language nullable: true
       telephone nullable: true
   }
   static mapping = {
       version false
   }
}

我可以使用此类插入MongoDB中的客户集合中,并且工作正常。当我尝试保存一个带有空值的字段时,就会发生问题。

customer.telephone = null
customer.save()

将值设置为null对MongoDB集合中的字段没有影响,其值将保持在更新之前的值。例如,如果将电话设置为" 1234567",并且当我将其更新为null时,则MongoDB中的值仍保留为" 1234567"。

我尝试在save()中使用failOnError: trueflush: true,两者都无法正常工作。有任何建议吗?

您可以尝试直接使用mongo驱动程序,以查看它是mongo问题还是Gorm问题。

Customer.collection.updateOne([_id:'the-id'],[telephone:null])

相关内容

  • 没有找到相关文章

最新更新