Slick Plain Sql通用返回类型

时间:2015-11-30 09:53:55

标签: sql scala generics slick

我正在尝试使用Slick编写可配置的sql查询执行程序。用户提供准备好的声明?并在运行时通过替换形成确切的查询?有价值观。

通常,这是使用光滑的方式运行普通sql查询的方式。

val query = sql"#$queryString".as[(String,Int)]

在我的情况下,我不知道结果类型,所以我想要回到通用结果类型。也许是一个元组列表,每个元组代表一行结果SET。

关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:0)

我找到了一个scala git问题的解决方案。这是

ResultMap extends GetResult[Map[String, Any]] {
  def apply(pr: PositionedResult) = {
    val resultSet = pr.rs
    val metaData = resultSet.getMetaData();
    (1 to pr.numColumns).map { i =>
      metaData.getColumnName(i) -> resultSet.getObject(i)
    }.toMap
  }

然后我们可以做val query = sql"#$queryString".as(ResultMap)

希望它有所帮助!!