このクエリを使用して最大値を選択したい (テーブル内のすべてのフィールドが null ではない):
dc.run(quote {
query[SchemaInfo]
.filter(_.subjectName == lift(subject))
.map(_.version)
.max
}).map(_.map(_ + 1).getOrElse(1))
そのテーブルが空である可能性があることはわかっているので、これを使用します: map(_.map(_ + 1).getOrElse(1))
。
問題は、このクエリが次のエラーを生成することです。
SQL
NULL
は列 1 (JDBC タイプ null) で読み取られますが、マッピングは非オプション タイプです。ここでオプションを使用します。JDBC 列のインデックスは 1 から始まることに注意してください。doobie.util.invariant$NonNullableColumnRead: SQLNULL
は列 1 (JDBC タイプ null) で読み取られましたが、マッピングは非オプション タイプです。ここでオプションを使用します。JDBC 列のインデックスは 1 から始まることに注意してください。
修正方法は?クイルなしで (純粋なドゥービーを使用)、同じクエリが正しく機能します