2011-09-08 19 views
3

我使用Squeryl作爲MySQL的ORM。這是一個使用包含數百個表的現有模式的新項目。從SQL - > Scala中執行任何Scala ORM的實現代碼生成?

據我所知,Squeryl和任何可用的Scala ORM都不能從R(mysql表)生成O(Scala類)。我想通過抓取信息模式來推廣我自己並不難,但如果其他人已經這樣做了,我寧願不重複那些努力。

我也很好奇,如果有人能告訴我爲什麼R-> O方向經常被忽視。根據我的經驗,O-> R是例外而非規則。

我可能會開始滾動我自己的解決方案。如果在我聽到另一個選項之前,它已經接近完成,我會發佈一個鏈接到該代碼。

謝謝。

回答

3

QueryDSL爲您提供了一個實用程序,可以從現有表中生成代碼。然而,你需要接受,它主要是一個Java庫,而Scala只被視爲一個擴展。

我想對R-O的支持只是時間和用戶的反饋問題。

1

我很好奇你在哪種類型的項目上工作,你發現R-> O是規則。我的經驗,我不僅包括我自己的項目,還包括其他Squeryl用戶在郵件列表中提到的項目,大多數Squeryl項目主要是新應用程序,其中SQL數據庫用於保存特定於應用程序的模型,而不是正在創建一個模型以匹配現有模式。與大多數操作系統項目一樣,開發人員傾向於首先關注他們自己需要的功能,然後再關注社區最需要的功能,因此我鼓勵您也參考Squeryl Google Group

+0

將是雙向的:你會繼承現有的架構或可以自由地從頭開始創建數據庫。 AR遷移,非常棒。 LINQ到SQL代碼生成器也很好。另一方面,Grails ORM爲數據庫模式生成提供了極好的DSL。 Scala等同於AR,LINQ到SQL(現在的EF)和GORM。然而,Scala ORMs的早期階段, Squeryl和ScalaQuery是最先進的。希望看到一個完整的Scala LINQ到SQL與遷移 - 本質上是最好的類型的ORM,沒有通常與術語相關的樣板和性能開銷 – virtualeyes

2

Squealer它查詢數據庫表並生成scala代碼。它使用Squeryl和其他庫。
我設法用最小的調整。

其gitub是here