2017-12-29 4 views
0

데이터베이스의 Service Messages 테이블에있는 모든 행을 반환하는 작은 Anorm 쿼리가 있습니다. 결국이 각 행을 JSON으로 변환하려고합니다.Scala Anorm 쿼리에서 반환 된 모든 행을 반복합니다.

그러나 현재 내가 수행하는 작업은 .map 함수를 사용하여 첫 번째 행의 요소를 반복하는 것입니다. 모든 행을 반복 처리하여 모든 행을 조작하고 JSON 객체로 변환 할 수 있습니까?

val result = DB.withConnection("my-db") { implicit connection => 
    val messagesRaw = SQL(""" 
     SELECT * 
     FROM ServiceMessages 
     """).apply; 

    messagesRaw.map(row => 
     println(row[String]("title")) 
    ) 
    } 
+0

당신은 [스트리밍에 대한 문서를 살펴 수 있습니다 지원] (http://playframework.github.io/anorm/#streaming-results) – cchantep

답변

0

사실 당신이하는 일은 각 행에서 제목 열의 내용을 가져 오는 첫 번째 행뿐만 아니라 모든 행을 반복합니다. 다음과 같은 사소한 수정 필요한 모든 타이틀을 수집하기 위해 : JSON (배열)로 변환

val titles = messagesRaw.map(row => 
    row[String]("title") 
) 

도 간단하다

import play.api.libs.json._ 
... 
Ok(Json.toJson(titles)) 
관련 문제