Scala: предоставление JDBC ResultSet через генератор (повторяемый)

У меня есть набор строк в базе данных, и я хотел бы предоставить интерфейс для их прокрутки следующим образом:

def findAll: Iterable[MyObject]

Где нам не нужно иметь все экземпляры в памяти одновременно. В C # вы можете легко создавать генераторы, подобные этому, с помощью yield, компилятор заботится о преобразовании кода, который перебирает набор записей, в итератор (своего рода инвертирование).

Мой текущий код выглядит так:

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

Есть ли способ, которым я мог бы преобразовать это, чтобы не хранить весь набор в памяти? Возможно, я мог бы использовать для понимания?

Ответы на вопрос(3)

Ваш ответ на вопрос