Когда я создаю простой объект и просто вызываю метод save для этого объекта, все атрибуты, которые имеют значение null, вставляются в базу данных с нулевым значением. Это просто создает беспорядок в базе данных. Есть ли способ избежать этого?
- Версия Grails - 2.5.6
- Версия GORM - 6.0.12
- mongodb.engine = "mapping "
Домен:
public class Person {
static constraints = {
name(nullable: true)
telecom(nullable: true)
gender(nullable: true)
birthDate(nullable: true)
address(nullable: true)
}
}
Код:
Person person = new Person()
person.save()
Пн go запись в БД
{
"_id" : NumberLong(59),
"address" : null,
"birthDate" : null,
"gender" : null,
"name" : null,
"telecom" : null,
"version" : 0,
"dateCreated" : ISODate("2020-04-18T15:34:26.244Z"),
"lastUpdated" : ISODate("2020-04-18T15:34:26.244Z")
}
Ожидаемая запись в базе данных:
{
"_id" : NumberLong(59),
"version" : 0,
"dateCreated" : ISODate("2020-04-18T15:34:26.244Z"),
"lastUpdated" : ISODate("2020-04-18T15:34:26.244Z")
}
Раньше это работало со старыми версиями GORM, это было поведение по умолчанию, но когда я обновил версию GORM, я начал получать все эти нулевые значения в базе данных. , который просто увеличивает размер моей базы данных.