随着springboot 3.1的新版本,我注意到当我创建一个带有枚举字段的实体时,数据库包含该字段的对应检查,以前不是这样的。我想知道是否有一种方法可以避免这种情况,我正在使用PostgreSQL。
这里是我的实体类:
public class LogFile {
@Column(nullable = false)
@Enumerated(EnumType.STRING)
private Status status;
private String fileName;
}
下面是我的Status枚举:
public enum Status {
ACTIVE("ACTIVE"),
PASSIVE("PASSIVE");
private String value;
Status(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
当创建表时,这是我看到的SQL代码:
create table log_file(status varchar(255)not null check(status in('ACTIVE ','PASSIVE')),file_name varchar(255))
1条答案
按热度按时间erhoui1w1#
枚举转换器(
NamedEnumValueConverter
)是硬编码的,但它调用Dialect来实现检查。所以,解决方案是扩展你的方言。getCheckCondition
由枚举转换器调用以生成值检查规则。然后在配置中的某个地方你必须指定