Hibernate 经过配置,可以自动生成表结构,非常方便。
但在过程中,我遇到了几个坑。
不能生成外键的问题
标注了 @ManyToOne + @JoinColumn,但生成的表却不带 Foreign Key! 真是奇怪
后来发现,是 Hibernate 用的 MySQL 的 Dialect 问题。要用 MySQL 5.5 以上的 InnoDBDialect 也管用
换了 Dialect,立即就能生成外键约束了。
与保留字冲突,不能生成某个具体的表
我有一个类,名字叫 Ip,但系统就是不能生成名为 Ip 的表。
我以为是 Ip 与 MySQL 里面的保留字冲突了,于是就把 Ip 换成 Ip888 结果还是不行。
百思不得其解。后来发现 Ip 里面有一个属性,叫做 Add 就是地址的意思,与 MySQL 的保留字冲突了。
改成 address 就好了。
折腾了一天,郁闷。