我在更新时正在阅读SQueryL documentation,我看到了:
update(songs)(s =>
where(s.title === "Watermelon Man")
set(s.title := "The Watermelon Man",
s.year := s.year.~ + 1)
)
我很难从SQueryL源代码中找到〜方法,链接文档显然也没告诉我它的用途。有人关心解释吗?
答案 0 :(得分:4)
我记得在Schema Definition Page上不久前读过关于波浪线操作符的内容。 它是关于原始类型和自定义类型之间的歧义,虽然(因为我刚开始学习Scala)它对我来说仍然听起来有些模糊;)。引用一小段
...
重要:在PrimitiveTypes模式下,数字运算符之间可能存在歧义
使用org.squeryl.PrimitiveTypeMode时,编译器会将表达式视为 下一个示例中的一个作为布尔值。需要.~函数来告诉编译器 左侧是TypedExpressionNode [Int]的节点,它将导致整个表达式为a LogicalBoolean是where子句的用法:
...
希望有所帮助。