运维开发网

Scala Slick过滤并加入

运维开发网 https://www.qedev.com 2020-07-14 08:42 出处:网络 作者:运维开发网整理
在Slick中执行过滤器连接时,以下两种方法之间的区别是什么? val query = for { c <- coffees if c.price < 9.0 s <- c.supplier -- assuming there is a foreign key } yield (c.name, s.name) 和 val query = for { (cof, sup) <- coffees
在Slick中执行过滤器连接时,以下两种方法之间的区别是什么?

val query = for {
 c <- coffees if c.price < 9.0
 s <- c.supplier -- assuming there is a foreign key
} yield (c.name, s.name)

val query = for {
 (cof, sup) <- coffees.filter(_.price < 9.0) join supplier on(_.supId === _.id)
} yield (cof.name, sup.name)
第一个是隐式连接,第二个是显式连接. Slick为前者生成一个WHERE子句,如:WHERE c.price< 9 AND c.supId = s.id.然而,后者生成一个JOIN,如JOIN供应商的ON c.supId = s.id.你可以看看 these examples.
0

精彩评论

暂无评论...
验证码 换一张
取 消