問題タブ [doobie]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
463 参照

scala - ドゥービー。.update.withGeneratedKeys() と .update.run を作成する

この質問を参照してください。
何らかの条件でエンティティを挿入したい。挿入してもしなくても構いません。条件が true の場合、エンティティが挿入されます。さまざまなテーブルに他のデータを挿入したい。次のようになります。

問題は、最初の挿入は a ですが、2 番目の挿入はそうでないため、これがコンパイルされfs2.Streamないことです。

に置き換えようとして_ <- inserts.reduce...いました_ = inserts.reduce。アプリはコンパイルできますがinserts、2 行目では発生しません。


UPD
この問題を解決する私の可能な方法:

これは機能しますが、IMHO これはきれいではありません。それを行うより良い方法はありますか?

0 投票する
1 に答える
435 参照

scala - Doobie はなぜ free モナドを使うのですか?

単純なようです

機能的な JDBC レイヤーの構築にも使用できます

0 投票する
1 に答える
483 参照

postgresql - 動的変数を INSERT INTO クエリに渡すと、「$1」またはその近くで Scala doobie 構文エラーが発生する

doobieの公式チュートリアルに従っています。

これが私のコードです:

次に、テーブルを実行して作成します。 (drop, create).mapN(_ + _).transact(xa).unsafeRunSync

上記のすべてが機能し、公式ドキュメントのとおりです。

後に続く私自身のコードは次のとおりです。

私も試しました:

sql"""insert into person (id, name, age) VALUES $first, $second""".update.run.transact(xa).unsafeRunSync

ただし、どちらも私に与えます:

org.postgresql.util.PSQLException: ERROR: syntax error at or near "$1"

で動的に複数の (2 つ以上の) 値を渡す方法はINSERT INTO?

0 投票する
1 に答える
715 参照

scala - SQL `NULL` は列 1 (JDBC タイプ null) で読み取られますが、マッピングは非オプション タイプです

このクエリを使用して最大値を選択したい (テーブル内のすべてのフィールドが null ではない):

そのテーブルが空である可能性があることはわかっているので、これを使用します: map(_.map(_ + 1).getOrElse(1))

問題は、このクエリが次のエラーを生成することです。

SQLNULLは列 1 (JDBC タイプ null) で読み取られますが、マッピングは非オプション タイプです。ここでオプションを使用します。JDBC 列のインデックスは 1 から始まることに注意してください。doobie.util.invariant$NonNullableColumnRead: SQLNULLは列 1 (JDBC タイプ null) で読み取られましたが、マッピングは非オプション タイプです。ここでオプションを使用します。JDBC 列のインデックスは 1 から始まることに注意してください。

修正方法は?クイルなしで (純粋なドゥービーを使用)、同じクエリが正しく機能します