我正在使用 hbm2ddl 创建一个 DB 表,其 Java 代码类似于以下内容:
@Entity
public class Filter {
public enum Type {
TypeA, TypeB;
}
@Enumerated(EnumType.STRING)
private Type type;
}
它工作正常,但是对于“类型”,创建了一个 VARCHAR 列,即 DDL 代码如下所示:
CREATE TABLE IF NOT EXISTS `filter` (`type` varchar(255) DEFAULT NULL)
但我想要的是这样的:
CREATE TABLE IF NOT EXISTS `filter` (`type` enum('TypeA','TypeB') NOT NULL)
这是否可以在 Hibernate 中声明,首选注释?
或者有没有办法扩展 SchemaUpdate 并覆盖以我喜欢的方式呈现枚举字段的更改脚本部分的方法?
背景:项目的 PHP 部分使用了相同的数据库,我想防止插入无效值。