JPA / Hibernate DDL生成; CHAR与VARCHAR

我有一个JPA / Hibernate数据模型,我使用Hibernate hbm2ddl工具生成数据库DDL。 我有一些字符串应该是CHAR,一些可能是数据库中的VARCHAR。 我想尽量减少DDL的手工编辑(我意识到有些必须发生)。

有谁知道我应该怎么做? 我意识到我可以通过被黑客攻击的方言制作所有的Strings VARCHARS或CHARS,但这并不是数据库中总是适用的。

我希望能够使用注释或aop执行此操作,避免在我的类中自定义列定义文本。

谢谢。

使用@Column(columnDefinition="CHAR()")注释要映射到数据库中CHAR的字符串。

所以,我终于发现你可以为方言中的类型指定长度限制。 所以,我已经决定长度为10的任何东西都应该是char,而且任何东西都应该是varchar:

 registerColumnType( Types.VARCHAR, 10, "char($l)" ); 

这不是我想要的,但这已经足够了。 很遗憾,我之前没有找到。