diff options
author | Kseniya Tomskikh <ktomskih@datamonsters.co> | 2017-10-06 03:18:51 +0700 |
---|---|---|
committer | Kseniya Tomskikh <ktomskih@datamonsters.co> | 2017-10-06 03:18:51 +0700 |
commit | 794a013fa88caebd6eb88faf17285ef18209e68b (patch) | |
tree | 82cb22b402508ac2ae28ae57705f3a72554a8c62 | |
parent | 96a9bdde5c96e2f743f835fd8996fd765c13bf40 (diff) | |
download | rest-query-794a013fa88caebd6eb88faf17285ef18209e68b.tar.gz rest-query-794a013fa88caebd6eb88faf17285ef18209e68b.tar.bz2 rest-query-794a013fa88caebd6eb88faf17285ef18209e68b.zip |
Fixed set list parameters in sql
-rw-r--r-- | src/main/scala/xyz/driver/pdsuicommon/db/SlickQueryBuilder.scala | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/main/scala/xyz/driver/pdsuicommon/db/SlickQueryBuilder.scala b/src/main/scala/xyz/driver/pdsuicommon/db/SlickQueryBuilder.scala index 8f42949..dc03a52 100644 --- a/src/main/scala/xyz/driver/pdsuicommon/db/SlickQueryBuilder.scala +++ b/src/main/scala/xyz/driver/pdsuicommon/db/SlickQueryBuilder.scala @@ -44,14 +44,6 @@ object SlickQueryBuilder { pp.setObject(v, JDBCType.BINARY.getVendorTypeNumber) } } - - implicit object SetListQueryParameter extends SetParameter[Seq[AnyRef]] { - def apply(vList: Seq[AnyRef], pp: PositionedParameters) = { - vList.foreach { v => - pp.setObject(v, JDBCType.BINARY.getVendorTypeNumber) - } - } - } } final case class SlickTableLink(keyColumnName: String, foreignTableName: String, foreignKeyColumnName: String) @@ -189,6 +181,16 @@ sealed trait SlickQueryBuilderParameters { } else sql } + def concatenateParameters(sql: SQLActionBuilder, first: Boolean, tail: Seq[AnyRef]): SQLActionBuilder = { + if (tail.nonEmpty) { + if (!first) { + concatenateParameters(sql concat sql""",${tail.head}""", false, tail.tail) + } else { + concatenateParameters(sql"""(${tail.head}""", false, tail.tail) + } + } else sql concat sql")" + } + filter match { case x if isEmpty(x) => sql"" @@ -231,8 +233,7 @@ sealed trait SlickQueryBuilderParameters { } val formattedValues = if (values.nonEmpty) { - val condition = s"(${values})" - sql"#${condition}" + concatenateParameters(sql"", true, values) } else sql"NULL" sql"#${escapeDimension(dimension)}" concat sqlOp concat formattedValues |