我們有這樣的情況:一個用 Spring 編寫的后端。一款原生 Android 應用。他們共享許多模型。所做的就是在后端將模型寫成一個包,然后在android中將其導出為jar。在 Android 上,我們使用 OrmLite 與數據庫上的這些模型進行交互。這些模型有適當的注釋來實現這一點。在后端,我們基本上為每個模型編寫原始 CRUD 查詢,這變得很瘋狂,因為每次我們添加字段時,我們都需要更新所有相關查詢。我們想要實現的是在服務器上使用另一個orm。問題在于,即使模型相同,舊的糟糕設計選擇的服務器和平板電腦也具有不同的列和表名稱。無法重命名列和表,因為這涉及太多工作。我們需要讓事情變得更聰明,但我們也希望避免復制模型只是為了將模型重新映射到不同的數據庫模式。您對如何實現這一目標有什么明智的想法嗎?
1 回答

慕雪6442864
TA貢獻1812條經驗 獲得超5個贊
不幸的是,“重命名列和表無法完成,因為它涉及太多工作”是長期擁有一致且易于管理的代碼庫的最佳解決方案。
從短期來看,明智的做法是在服務器上使用基于 XML 的配置,并堅持平板電腦應用程序的注釋。
更新
你要看看JPA規(guī)范,它定義了java中的持久化機制。它有多個實現提供者,這里是最新版本規(guī)范的提供者列表。
我只有Hibernate ORM的經驗,它及其本機 API 還提供了 JPA 的實現。除了注釋之外,它還具有基于 XML 的配置選項。您將評估哪個提供商適合您的要求。
如果ORMlite的注釋與JPA不同,那么除了ORMLite注釋之外,您甚至可以在實體類中使用JPA注釋。但請注意,這會使您的實體模型類變得混亂,并且您將需要在實體模型的類路徑上選擇 JPA 實現庫和 ORMLite 庫。
添加回答
舉報
0/150
提交
取消