小编典典

JPA / Hibernate DDL生成;CHAR与VARCHAR

hibernate

我有一个JPA / Hibernate数据模型,正在使用Hibernate
hbm2ddl工具生成数据库DDL。我在数据库中有一些应该是CHAR的字符串,有些可能是VARCHAR。我想最小化DDL的手动编辑(我意识到有些事情必须发生)。

有人知道我应该怎么做吗?我意识到我可以通过被破解的方言来制作所有Strings VARCHARS或CHARS,但这并不是数据库中总是合适的方法。

我希望能够使用批注或aop做到这一点,避免在类中使用自定义列定义文本。

谢谢。


阅读 428

收藏
2020-06-20

共1个答案

小编典典

因此,我终于发现您可以为方言中的类型指定长度限制。因此,我决定长度小于10的任何字符都应为char,而长度大于10的任何内容均应为varchar:

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

那不是我想要的,但这已经足够了。遗憾的是我没早找到。

2020-06-20