From slick source , it seems that if this is an update, slick throws an error in the method applyon line 52 during the extraction of the value.
staticQuery , 35, , slick GetResult.GetUpdateValue rconv, apply, , .
ResultSet, , :
private val updateQuery = "update test set name = 'mohitttttt' where id = ? returning name"
db.withSession { implicit session =>
session.withPreparedStatement(updateQuery) { ps =>
ps.setInt(1, 1)
val rsetIterator = new ResultSetIterator[String](ps.executeQuery(), rset => rset.getString(1))
rsetIterator.toList.head
}
ResultSetIterator -
class ResultSetIterator[T](rset: ResultSet, mapper: ResultSet => T) extends Iterator[T] {
def hasNext = rset.next
def next: T = {
mapper(rset)
}
}
A mapper , ResultSet . , ResultSet String. .