大家讲道理2017-04-18 09:29:17
終於可以來吐槽一下了,對於已經長時間不再使用 ORM
的人來表達一下我的看法。
經常看到寫Java
後端的人,寫了一大堆模型對象,各種繼承和組合都用上了,如@chanjarster 所說的,一對一,一對多,多對多,單項雙向的,直接繞暈了...
其實個人覺得ORM
是一个很糟糕的发明,ORM 唯一的好处就是不用考虑 SQL
,简直哭晕,SQL
是一个多么好的东西,现在对于大部分的 Java
程序员来说,写个 SQL
是一個很糟糕的發明,ORM 唯一的好處就是不用考慮SQL
,簡直哭暈,SQL
是一個多麼好的東西,現在對於大部分的
SQL
應該不是大問題,比在這裡去背各種物件映射規則簡單多了...
ORM
總結一下
ORM
綜上,如果你認可的話,那就放棄
替代方案:
MyBaits
直接写 SQL
使用
NOSQL
数据库,把对象转换为 JSON
数据,可以直接存储,如 MongoDb
使用
大家讲道理2017-04-18 09:29:17
你這個問題好大,簡單來說就是搞清楚Model和Model之間的關係,有三維
「引用關係」還是「擁有關係」。如果A擁有B,那麼A刪除的時候B也要跟著刪除。如果A引用B,那麼A刪除了B不用跟著刪除。這個是根據業務來判斷。
單項還是雙向。這個是根據業務來,你自己判斷,不過要記住一點,在「引用關係」下,盡量保持單向。在「擁有關係」下,雙向是可以的。
一對一、一對多、多對一、多對多。這個不多講了,不過有一點要注意,盡量避免多對多,如果用了多對多多問自己是否一定要這麼幹。
如果一定要問有什麼方法論,可以看看DDD(Domain Driven Design)裡的聚合根(Aggregate Root)概念。