告诉Hibernate的hbm2ddl为@Enumerated带注释的字段添加MySQL枚举列
|
我正在使用hbm2ddl和类似以下内容的Java代码创建一个数据库表:
@Entity
public class Filter {
public enum Type {
TypeA, TypeB;
}
@Enumerated(EnumType.STRING)
private Type 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并覆盖我喜欢的方式来呈现枚举字段的alter script部分的方法?
背景:项目的PHP部分使用了相同的数据库,我想防止插入无效值。
没有找到相关结果
已邀请:
2 个回复
熊融炭臀陛
讹巳漓把备
注释上使用
属性,该属性似乎专门用于生成自定义DDL代码。 请参阅描述该属性的文档摘录: (可选)为列生成DDL时使用的SQL片段。 默认为生成的SQL以创建推断类型的列。
限制是相当标准的,并由另一个属性
支持。 因此,您的属性定义如下所示: