2

私はこのようなことをしたいです (これは、実際の問題を単純化するために作成された例です):

def findByGender(isMale: Option[Boolean]) = {
  People.filter(row => row.name.isNotNull && isMale match {
    case Some(true) => row.wife.isNotNull      // find rows where wife column is not null
    case Some(false) => row.wife.isNull        // find rows where wife column is null
    case None => true                          // select everything
  })    
}

最後の「true」のため、これはコンパイルされません。これを行うより良い方法はありますか?

4

2 に答える 2

4

あなたはそれをする必要がありますColumn[Boolean]

def findByGender(isMale: Option[Boolean]) = {
  People.filter(row => row.name.isNotNull && isMale match {
    case Some(true) => row.wife.isNotNull      // find rows where wife column is not null
    case Some(false) => row.wife.isNull        // find rows where wife column is null
    case None => LiteralColumn(true)           // select everything
  })    
}
于 2014-10-24T20:02:50.703 に答える