针对高流量站点的scala的最佳Web数据库解决方案?

时间:2010-05-31 22:09:33

标签: database orm scala

我负责重建一个每天约有250,000名访客的网站。我们想使用Scala,但它与Spring(在一些小的情况下)和Hibernate(如果你想使用scala集合,这里有一个主要且非常令人讨厌的不匹配)不能很好地工作。

应用程序本身将有大约40-50个表。

除了Hibernate之外,是否有一个与Scala一起使用的ORM,并且与Hibernate一样高效且可靠?它是否也具有相同的功能,或者如果我们不使用Hibernate,我们是否会遇到漏洞抽象?

对于我们来说,使用更新的框架并且似乎没有很多行业支持将是一个很大的风险......同时,Hibernate在使用时是一个真正的痛苦斯卡拉。

1)Java Collection< - > Scala Collection绝对是痛苦的。还有更多的样板和废话要写。

2)IDE不会自动导入JavaConversions和Java接口......所以我们需要手动完成。优化IDEA中的进口将破坏所有手工工作。

3)在域对象和dao类中一直来回转换会产生性能成本。

4)更不用说需要进行大量的投射,这会产生丑陋的代码。

我实际上很乐意编写我自己的专为scala量身定制的orm,但显然这实际上超出了我们项目的范围。

那么最好的方法是什么?

2 个答案:

答案 0 :(得分:6)

  1. 您考虑过Lift Framework吗?它有一个非常好的持久性模块 - Lift Record(在你正在搜索的Scala中实现ActiveRecord概念)。
    此外,如果您决定使用NOSQL(可能比传统RDBMS更好地满足您的高吞吐量需求),Lift会为Mongo DB, Redis and Couch提供模块。
  2. 另一个经过验证的Scala ORM解决方案是JPA。您可以在Scala中自由使用JPA注释。

    这两种解决方案都非常可靠并且有企业支持(据我所知)。

    附:值得一提 - 如今,Lift Framework是Scala Web框架的一种行业标准。它有着良好的声誉,并且已经有一些很好的入门书籍。

答案 1 :(得分:5)

看看Circumflex。用Scala编写的一个ORM,用于Scala。