Hibernate 經過配置,可以自動生成表結構,非常方便。
但在過程中,我遇到了幾個坑。
不能生成外鍵的問題
標註了 @ManyToOne + @JoinColumn,但生成的表卻不帶 Foreign Key! 真是奇怪
後來發現,是 Hibernate 用的 MySQL 的 Dialect 問題。要用 MySQL 5.5 以上的 InnoDBDialect 也管用
換了 Dialect,立即就能生成外鍵約束了。
與保留字衝突,不能生成某個具體的表
我有一個類,名字叫 Ip,但系統就是不能生成名爲 Ip 的表。
我以爲是 Ip 與 MySQL 裏面的保留字衝突了,於是就把 Ip 換成 Ip888 結果還是不行。
百思不得其解。後來發現 Ip 裏面有一個屬性,叫做 Add 就是地址的意思,與 MySQL 的保留字衝突了。
改成 address 就好了。
折騰了一天,鬱悶。