我正在尝试执行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 {
     ...
  }

它出什么问题了?!