aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKseniya Tomskikh <ktomskih@datamonsters.co>2017-10-06 03:18:51 +0700
committerKseniya Tomskikh <ktomskih@datamonsters.co>2017-10-06 03:18:51 +0700
commit794a013fa88caebd6eb88faf17285ef18209e68b (patch)
tree82cb22b402508ac2ae28ae57705f3a72554a8c62
parent96a9bdde5c96e2f743f835fd8996fd765c13bf40 (diff)
downloadrest-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.scala21
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