Jeff Shutt
unread,Sep 29, 2011, 11:00:13 AM9/29/11Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to orbr...@googlegroups.com
I ended up just creating these:
def buildParameterString(seq: Seq[_], name: String) = (0 until seq.size).map{ e => ":%s%d".format(name, e) }.mkString(",")
def buildValuesMapping(seq: Seq[_], name: String) = (0 until seq.size).map{e => "%s%d".format(name, e) -> seq(e)}.toSeq
def getParameterStringAndValuesMapping(seq: Seq[_], name: String) = (buildParameterString(seq, name), buildValuesMapping(seq, name))
Usage:
val ids = List(1, 2, 3)
val (parameters, values) = getParameterStringAndValuesMapping(ids, "id")
val sql = "select * from orders where id in (%s)".format(parameters)
val orders = broker.readOnly() { session =>
session.selectAll(Token(sql, 'getOrdersByIds, OrderExtractor), values: _*)
}
It's certainly not optimized as there are two iterations of the sequence size, but it works for my simple case.