Scala: Expondo um ResultSet JDBC através de um gerador (iterável)

Eu tenho um conjunto de linhas em um banco de dados e gostaria de fornecer uma interface para alternar entre elas assim:

def findAll: Iterable[MyObject]

Onde não precisamos ter todas as instâncias na memória de uma só vez. No C #, você pode criar facilmente geradores como esse usando yield, o compilador cuida da conversão do código que percorre o conjunto de registros em um iterador (meio que invertendo-o).

Meu código atual é assim:

def findAll: List[MyObject] = {
  val rs = getRs
  val values = new ListBuffer[MyObject]
  while ( rs.next() ) 
    values += new valueFromResultSet(rs)
  values.toList
}

Existe uma maneira de converter isso para não armazenar o conjunto inteiro na memória? Talvez eu pudesse usar um para compreensão?

questionAnswers(3)

yourAnswerToTheQuestion