Я разрабатываю API, используя Springboot и PostgreSQL 12. Я создал пользовательскую таблицу со спящим режимом, и поле объекта, которое вызывает проблемы c, выглядит следующим образом:
@Column(columnDefinition = "BOOLEAN NOT NULL DEFAULT FALSE")
private Boolean emailVerificationStatus = false;
Моя таблица кажется для правильной генерации:
create table users (
id int8 generated by default as identity,
email varchar(120) not null,
email_verification_status boolean default false not null,
email_verification_token varchar(255),
encrypted_password varchar(255) not null,
first_name varchar(50) not null,
last_name varchar(50) not null,
user_id varchar(255) not null,
primary key (id)
)
Моя проблема заключается в том, что при запуске приложения я получаю сообщение об ошибке:
org.hibernate.PropertyValueException: not-null property references a null or transient value : fr.mycompany.app.io.entity.UserEntity.emailVerificationStatus
По умолчанию, когда я создаю пользователя, он отправляет нулевое значение . Я могу решить эту проблему, установив значение false в моем слое обслуживания, но это не очень элегантно. Кроме того, когда я удаляю параметр nullable = false, он работает нормально, но вместо значения по умолчанию устанавливается значение null. Кажется, что postgresql не принимает значение по умолчанию (false) в качестве значения, когда я пытаюсь отправить пользователя в свой API. Я хочу принудительно изменить значение null на false по умолчанию.