Атрибуты, вставленные с нулевыми значениями в GORM 6.0.12 - PullRequest
1 голос
/ 18 апреля 2020

Когда я создаю простой объект и просто вызываю метод save для этого объекта, все атрибуты, которые имеют значение null, вставляются в базу данных с нулевым значением. Это просто создает беспорядок в базе данных. Есть ли способ избежать этого?

  1. Версия Grails - 2.5.6
  2. Версия GORM - 6.0.12
  3. 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, я начал получать все эти нулевые значения в базе данных. , который просто увеличивает размер моей базы данных.

...