我的光滑和数据库访问设置如下:
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 :(得分:0)
导入您的驱动程序(以下假定为postgres)。检查Slick文档以了解如何获取Database对象。
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
}
这将返回元组列表