2015-02-05 26 views
0

我的光滑和DB访问连接是建立类似如下:执行一个简单的有以下

abstract class UserDao { 
    def getById(id): Option[User] 
} 

class UserDaoImpl extends UserDao { 
    class Users(....) extends Table[User](...) { 
    def id = column[Int]("id", O.PrimaryKey, O.AutoInc) 
    .. 
    def * = (id, ...) <> (User.tupled, User.unapply) 
    } 

    val users = TableQuery(new Users(..)) 

    def getById(..) { .. } 
} 

现在假设我有另一个类的物品,以及看起来像上面userDAO的一个ArticleDao。

case class Article(id: Int, userId: Int, ..) 

我怎么能在光滑的执行innerJoin查询,如:

select * from users inner join users on users.id = articles.user_id 

请指定任何华而不实的相关,因为我被卡住那些还进口。

回答

0

导入你的驱动程序(下面假设postgres)。检查Slick文档以了解如何获取数据库对象。

import scala.slick.driver.PostgresDriver.simple._ 

val query = users.innerJoin(users).on(_.id === _.id) 

val result: List[(User, User)] = db.withSession { implicit session => 
    query.run 
} 

这将返回记录

名单
相关问题