次のようなエンティティ クラスがあるとします。
case class MyEntity(some_flag: Boolean) extends KeyedEntity[Long]
Squeryl を使用して次の SQL 更新を実行したいと考えています。
update table_name set some_flag = not some_flag where id = 1
これを行うための関連する Squeryl ステートメントは何ですか? 私はすでに試しました
def toggleFlag(id: Long) = inTransaction {
update(table)(entity =>
where(entity.id === id)
set(entity.some_flag := !entity.some_flag)
)
}
ただし、これはデータベースには影響しません。
更新 2: Squerylのドキュメントでは、整数値を 1 ずつ増やす部分的な更新の例を示しています。
update(songs)(s =>
where(s.title === "Watermelon Man")
set(s.title := "The Watermelon Man",
s.year := s.year.~ + 1)
)
アップデート:
Scala 2.10 と Play! で Squeryl 0.9.5-6 を使用しています。2.1