2016-12-12 3 views
0

У меня есть следующее Slick действия, которое обновляет все даты в 2016 году, за исключением субботы и воскресеньезаявления Некорректного обновления в Slick 3.1.x

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

Я считаю, что вы случайно используете операционную систему scala != вместо функции Slick =!=. Попробуйте это:

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

Вы также можете попробовать это:

val weekendDays = Set("Sat", "Sun") 
val action = dates.filter(d => d.year === 2016 && !d.weekDay.inSet(weekendDays)) 
Смежные вопросы