Всякий раз, когда нужно вставить объект, Hibernate будет генерировать следующий DML:
INSERT
INTO my_leads (id, name, enrtyDate, mobilNo, firm_name)
VALUES (?, ?, ?, ?, ?)
В вашем Java-коде вы просто не устанавливаете значение для firm_name
, так что свойствоnull
.
Будет ли использоваться значение по умолчанию для столбца, будет зависеть от того, какую платформу базы данных вы используете и как она интерпретирует NULL
в этом случае.
Например, MySQL увидит, что Hibernate ограничен NULL
для firm_name
, и поэтому применит для вас значение по умолчанию, а не установит столбец как NULL
.
Например, SQL Server будетобратите внимание, что оператор INSERT
содержит поле firm_name
в разделе столбцов и поэтому будет игнорировать значение по умолчанию и использовать любое значение, указанное в разделе значений, поэтому для столбца будет установлено значение NULL
.Единственный способ, которым SQL Server будет использовать значение по умолчанию, - это отсутствие столбца в разделе столбцов оператора вставки.
Единственный способ гарантировать, что значение по умолчанию установлено независимо от платформы вашей базы данных, - это сделатьубедитесь, что ваше юридическое лицо также придерживается этого правила.Это означает, что вам нужно либо инициализировать firm_name
значением по умолчанию в определении поля, в конструкторе вашего класса или в вашей бизнес-логике, которая создает ваши сущности.