Scala: Wystawienie zestawu wyników JDBC przez generator (iterowalny)
Mam zestaw wierszy w bazie danych i chciałbym udostępnić interfejs do ich obsługi w następujący sposób:
def findAll: Iterable[MyObject]
Gdzie nie potrzebujemy mieć wszystkich instancji w pamięci naraz. W języku C # możesz łatwo tworzyć generatory, takie jak ten, używając wydajności, kompilator dba o konwersję kodu, który przechodzi przez zestaw rekordów w iterator (rodzaj odwracania).
Mój obecny kod wygląda tak:
def findAll: List[MyObject] = {
val rs = getRs
val values = new ListBuffer[MyObject]
while ( rs.next() )
values += new valueFromResultSet(rs)
values.toList
}
Czy istnieje sposób, aby przekonwertować to, aby nie przechowywać całego zestawu w pamięci? Może mógłbym użyć do zrozumienia?