在Slick中,如何根据自定义列属性进行过滤?

时间:2016-08-03 09:06:18

标签: scala slick

我的Slick中有一个自定义列,如下所示:

class PgACL(tag: Tag) extends Table[ACL](tag, Some(schemaName), "ACL") {

    def id = column[UUID]("ID", O.PrimaryKey)
    def resourceSpec = column[ResourceSpec]("RESOURCE_SPEC")

    def * = (id, resourceSpec) <>(ACL.tupled, ACL.unapply)
  }

和自定义类:

case class ResourceSpec (val resourceType: String, val resourceId: String)

我将它们映射成这样:

implicit val ResourceSpecMapper = MappedColumnType.base[ResourceSpec, String](
    resourceSpec => resourceSpec.resourceSpecStr,
    str => ResourceSpec.fromString(str)
  )

我正在尝试根据自定义列的属性进行过滤查询,但我不知道如何访问它。例如,我希望:

  

TableQuery [PgACL] .filter(x =&gt; x.resourceSpec.resourceType ===&#34; XYZ&#34;)

但x.resourceSpec返回Rep [ResourceSpec],我不知道如何获得它的资源类型&#34;属性。 有什么帮助吗?

0 个答案:

没有答案