2011-09-08 20 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