根据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?
答案 0 :(得分:1)
@Column
注释默认长度为255;因此你看到的行为。
AnnotationBinder
在没有显式@Column
/ @Columns
的情况下创建的隐式列定义也默认为255: - )
您需要explicitly specify column length,但好消息是您不必通过columnDefinition
执行此操作:
@Column(name = "enabled", length = 1)