2016-12-12 10 views
0

私は除いて2016年にすべての日付を更新し、次のスリック作用を有し土日不正な更新ステートメント

val action = dates.filter(d => d.year === 2016 && 
      d.weekDay != "Sat" && d.weekDay != "Sun").map(x => (x.isHoliday)).update(0) 
    Await.result(db.run(action), Duration.Inf).value 
    val sql = action.statements.head 
    println(sql) 

問題は更新が意図したように、SQLのプリントを動作しないということです

update `dates` set `is_holiday` = ? where ((`dates`.`year` = 2016) and true) and true 

それは印刷する必要があり

update `dates` set `is_holiday` = ? where `dates`.`year` = 2016 
     and `dates`.`week_day` != 'Sat' and `dates`.`week_day` != 'Sun' 

この文の何が問題になっているのですか?

答えて

2

Slick =!=関数の代わりにscala !=演算子を誤って使用していると思います。これを試してみてください:

val weekendDays = Set("Sat", "Sun") 
val action = dates.filter(d => d.year === 2016 && !d.weekDay.inSet(weekendDays)) 

val action = dates.filter(d => d.year === 2016 && d.weekDay =!= "Sat" && d.weekDay =!= "Sun").map(x => (x.isHoliday)).update(0) 

ます。また、これを試みることができます

関連する問題