2015-02-05 68 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 
} 

這將返回記錄

名單
相關問題