Scala SQL`NULL`在第1列读取(JDBC类型NULL),但映射为非选项类型

Scala SQL`NULL`在第1列读取(JDBC类型NULL),但映射为非选项类型,scala,quill,doobie,quill.io,Scala,Quill,Doobie,Quill.io,我希望使用此查询选择最大值(表中的所有字段均不为空): 我知道,那个表可能是空的,所以我使用这个:map(u.map(u+1).getOrElse(1)) 问题是此查询产生以下错误: SQLNULL在第1列读取(JDBC类型NULL),但映射到 非期权型;在这里使用选项。注意,JDBC列索引是 以1为基础。 doobie.util.invariant$NonNullableColumnRead:SQLNULLread 在第1列(JDBC类型null),但映射为非选项类型;使用 选择这里。注意,J

我希望使用此查询选择最大值(表中的所有字段均不为空):

我知道,那个表可能是空的,所以我使用这个:
map(u.map(u+1).getOrElse(1))

问题是此查询产生以下错误:

SQL
NULL
在第1列读取(JDBC类型NULL),但映射到 非期权型;在这里使用选项。注意,JDBC列索引是 以1为基础。 doobie.util.invariant$NonNullableColumnRead:SQL
NULL
read 在第1列(JDBC类型null),但映射为非选项类型;使用 选择这里。注意,JDBC列索引是基于1的

如何修复它?
如果没有quill(使用纯doobie),同样的查询工作正常

我知道您可能已经得到了答案,但我将在这里留下我的评论,希望它能在将来帮助别人

所以问题是一致的
query[SchemaInfo]
由于记录可能不存在,因此应将其映射到
query[Option[SchemaInfo].唯一

dc.run(quote {
    query[SchemaInfo]
      .filter(_.subjectName == lift(subject))
      .map(_.version)
      .max
  }).map(_.map(_ + 1).getOrElse(1))