我正在使用Springboot和PostgreSQL 12开发API。我使用Hibernate创建了一个用户表,以下是有问题的实体字段:
@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
默认情况下,当我创建用户时,它会发送一个null值。我可以通过在我的服务层中将该值设置为false来解决此问题,但这并不是很优雅。另外,当我删除nullable = false选项时,它可以正常工作,但该值被设置为null而不是获取默认值。似乎postgresql在尝试向API发送用户时不将默认值(false)视为值。我想强制将null值默认更改为false。