我有一个JPA / Hibernate数据模型,正在使用Hibernate hbm2ddl工具生成数据库DDL。我在数据库中有一些应该是CHAR的字符串,有些可能是VARCHAR。我想最小化DDL的手动编辑(我意识到有些事情必须发生)。
有人知道我应该怎么做吗?我意识到我可以通过被破解的方言来制作所有Strings VARCHARS或CHARS,但这并不是数据库中总是合适的方法。
我希望能够使用批注或aop做到这一点,避免在类中使用自定义列定义文本。
谢谢。
因此,我终于发现您可以为方言中的类型指定长度限制。因此,我决定长度小于10的任何字符都应为char,而长度大于10的任何内容均应为varchar:
registerColumnType( Types.VARCHAR, 10, "char($l)" );
那不是我想要的,但这已经足够了。遗憾的是我没早找到。