我所知道的Scala持久层框架有:
1、Slick (typesafe出品)
2、Squeryl
4、ScalaActiveRecord (基于Squeryl之上)
6、activate-framework(不只是scala版的hibernate,支持async db)
web框架的话
1、Spray(build on akka,完全异步,非阻塞,非常有前景,适合REST后端程序)
2、Play(还不是很习惯)
3、Scalatra(对akka,squeryl等都有现成集成,适合需要view层的)
4、Lift
我的选择:
1、对于api层
采用Spray+Akka+Slick/ScalaActiveRecord
2、对于普通web应用
采用Scalatra/Spray+Slick/ScalaActiveRecord
采用ScalaActiveRecord的原因:
1、基于Squeryl的rails风格
2、可集成数据库连接池(BoneCP)
3、可进行事务控制(支持optimistic locking)
采用Slick的原因:
1、typesafe官方产品
2、可集成数据库连接池
参考 https://gist.github.com/filipelenfers/7914993
参考 http://slick.typesafe.com/doc/2.1.0/connection.html#using-a-datasource
3、事务控制(目前好像不支持optimistic locking)
参考
spray集成actor的参考架构