schema2ddl为YesNoType生成错误的数据类型

时间:2009-12-03 15:59:07

标签: hibernate

根据docs org.hibernate.type.YesNoType应该在schema2ddl生成期间生成char(1)。但是,以下定义默认为H2,MySQL等数据库生成char(255)

@Column(name = "enabled")
@Type(type = "org.hibernate.type.YesNoType")
private Boolean enabled = Boolean.FALSE;

将columnDefinition的硬编码值添加为“char(1)”会正确创建SQL。 我在这里缺少什么,有没有解决这个问题的解决方法而不使用columnDefinition?

1 个答案:

答案 0 :(得分:1)

@Column注释默认长度为255;因此你看到的行为。

实际上,删除它也无济于事,因为Hibernate的AnnotationBinder在没有显式@Column / @Columns的情况下创建的隐式列定义也默认为255: - )

您需要explicitly specify column length,但好消息是您不必通过columnDefinition执行此操作:

@Column(name = "enabled", length = 1)