1

Int列を含むテーブルがありますTIME

def time = column[Int]("TIME")

テーブルはカスタム タイプにマップされます。最大時間値を見つけたい、つまり単純な集計を実行したい。ドキュメントの例は十分に簡単に思えます:

val q = coffees.map(_.price)
val q1 = q.min
val q2 = q.max

ただし、これを行うと、q1 と q2 の型はColumn[Option[Int]]. getこれに対してorを実行してgetOrElse型の結果を得ることができますColumn[Int](これは私には少し驚くべきことです -getのメンバーであるか、または値が からにColumn変換されてから再び Column にラップされますか?なぜですか?)、しかしできませんスカラー値を Int に代入しようとすると、次のようなエラー メッセージが表示されます。Option[Int]Int

type mismatch;
 found   : scala.slick.lifted.Column[Int]
 required: Int

集約されたクエリからスカラ値を取得するにはどうすればよいですか?

4

1 に答える 1

3

Column私の推測では、オブジェクトを取得する理由である呼び出し元を呼び出していないということです。これを試して:

val q1 = q.min.run

を返す必要があり、それからorOption[Int]ができます。getgetOrElse

于 2014-05-23T14:17:34.143 に答える