2016-07-19 9 views
-1

を使用して2つの値を選択し、私は2列から値を取得するには、次のことが可能です。ScalaのAnormドキュメント(<a href="https://www.playframework.com/documentation/2.5.x/Anorm" rel="nofollow">https://www.playframework.com/documentation/2.5.x/Anorm</a>)によると、カラム解像度

val res: (String, Int) = SQL"SELECT text, count AS i".map(row => 
    row[String]("text") -> row[Int]("i") 
) 

これは...

原因これをコンパイルしていません:タイプSimpleSql [(文字列、INT)]の

式(文字列、INT)予想タイプに準拠していない

私はちょうどこれを行う1つの方法を探しています(匿名2.5+用)。私は定期的なパーサーを使用していましたが、これを行うより簡潔な方法を探しています。

答えて

1

コードが完全ではありません。このようなタプルとして1つの結果を得るには、.singleコンビネータを使用する必要があります。 Anormのフラットナーを使用して

val res: (String, Int) = SQL"SELECT text, count AS i".map(row => 
    row[String]("text") -> row[Int]("i") 
).single 

タプル結果のために簡単です:see examples

+0

'.single'コンビネータは廃止されているようです。代わりがありますか? – jiaweizhang

+0

あなたはそれがどこにあるか分かりません。それはまったく推奨されていません。 – cchantep

関連する問題

 関連する問題