Dies ist eine Kunden-Domain-Klasse in Grails (v3.1):Grails mit MongoDB nicht null Wert zu speichern
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
}
}
Ich kann in den Kunden Sammlung in MongoDB einfügen und aktualisieren Sie diese Klasse verwenden, und es funktioniert fein. Das Problem tritt auf, wenn ich versuche, eines der Felder mit einem Nullwert zu speichern.
customer.telephone = null
customer.save()
Wert null Einstellung hat keine Auswirkung auf dem Gebiet in MongoDB Sammlung, wird sein Wert vor der Aktualisierung auf den Wert gesetzt bleiben. Wenn das Telefon beispielsweise auf "1234567" eingestellt ist und wenn ich es auf Null aktualisiere, bleibt der Wert in MongoDB "1234567".
Ich habe versucht mit failOnError: true
und flush: true
in save()
, beide funktionieren nicht. Irgendwelche Vorschläge?
Wird lastUpdated nach dem Speichern mit einem Nullwert aktualisiert? Werden andere Nicht-Null-Werte in demselben Commit wie der Nullwert aktualisiert? –
@MikeW, lastUpdated-Feld wird nach dem Speichern mit Nullwert aktualisiert. Und Nicht-Null-Werte werden in demselben Commit wie der Nullwert aktualisiert. – Haris