光滑inSetBind或inSet不起作用

时间:2015-11-02 01:30:50

标签: scala h2 slick for-comprehension

我试图使用inSetBind限制Slick 3.1.0查询的结果,并且总是得到一个空的回调。 这是设置:

case class VTag(tagID: Option[Long], kind: String, name: String) {
    def toUITag = UITag(tagID = tagID.get, kind = kind, name = name)
}

class VTags(tag: Tag) extends Table[VTag](tag, TagsDao.tableName) {
    def tagID = column[Long]("ID", O.PrimaryKey, O.AutoInc)
    def name = column[String]("name")
    def kind = column[String]("kind")        
    def * = (tagID.?, name, kind) <>((VTag.apply _).tupled, VTag.unapply)
}


object TagsDao extends SurgeonsTableObject {
    val tableVTags = TableQuery[VTags]
    val db = GlobalDAO.db

    override def tableName: String = "VTAGS"
    override def tableSchema: H2Driver.DDL = tableVTags.schema

    def getTagsByName(tagsToSearch: Set[String]): Future[Seq[VTag]] = {
        val tagList: List[String] = tagsToSearch.toList
        val q = for (c <- tableVTags if c.name.inSetBind(tagList)) yield c
        db.run(q.result)
    }

    def all: Future[Seq[VTag]] = {
        val q = for (c <- tableVTags.sortBy(_.tagID.asc)) yield c
        db.run(q.result)
    }
}

getTagsByName 是创建问题的方法。全部返回我插入的所有100个标签。 getTagsByName 始终为零。我尝试过使用inSet / inSetBind,将list(tagList)或set(tagsToSearch)作为输入传递。始终清空结果集。发生了什么事。 请不要告诉我,我必须写SQL ...

0 个答案:

没有答案