1

我正在尝试执行 SELECT 语句,其中参数可能具有空值:

SQL(
      """
      SELECT id FROM devices WHERE
        name = {name}
      """)
  .on("name" -> device.name)()
  .collectFirst {
     ...
  }.getOrElse {
     ...
  }

device.name可以返回null。我db.default.logStatements=true看到生成的 SQL 看起来像这样:SELECT id FROM devices WHERE name = NULL.

name = NULL对 Postgre SQL 不太有效,但我已经使用transform_null_equals. 现在,当我使用 pgAdmin 从日志中执行 SQL 时,它工作得非常好。但是,ANORM 没有找到任何东西。

以下代码确实返回结果:

SQL(
      """
      SELECT id FROM devices WHERE
        name = NULL
      """)
  .on("name" -> device.name)()
  .collectFirst {
      ...
  }.getOrElse {
     ...
  }

它出什么问题了?!

4

0 回答 0