这是非常非常非常令人沮丧的。一段时间以来,我一直在尝试使用 Slick,但障碍不断出现。Slick 的概念确实很棒,但是学习起来非常困难,而且不像 Scala,它没有“初学者”、“中级”和“高级”的风格,各个阶段的人都可以轻松使用它。
我正在使用 Play-Slick (Slick 2.0.0) https://github.com/freekh/play-slick,遵循其 Multi-DB cake 示例:https ://github.com/freekh/play-slick/tree /master/samples/play-slick-cake-sample/app
出于某种原因,首先,ddl
不属于TableQuery
,不像文档中的声明:“TableQuery 的 ddl 方法创建 DDL”。这通过 scaladoc 显示:http ://slick.typesafe.com/doc/2.0.0/api/#scala.slick.lifted.TableQuery那里没有ddl
方法。
其次,我slick.lifted.Query
无法生成delete
方法。它适用于list
,但不适用于delete
。
val S3Files = TableQuery[S3Files]
S3Files.where(_.url === url).delete
这行不通……然后我尝试了:
val query = (for(s <- S3Files if s.url === url) yield s)
query.list //this works
query.delete //ehh?? can't find the method
val query2 = (for(s <- S3Files if s.url === url))
query2.delete //still won't work
嗯……因为 Slick 使用了一个非常复杂的(至少对新手来说)隐式类型转换系统,我真的不知道出了什么问题。