問題タブ [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 に答える
176 参照

scala - OR WHERE を使用すると、Scala Doobie は何も返さない

いくつかのフィルターを使用してデータベースから選択しようとしています。コード:

結果クエリは次のようになります。SELECT * FROM phonebook WHERE name LIKE Denis% OR name LIKE Semen%

そして、私は何も得ません。SELECT の名前が 1 つだけの場合にのみ、何かを取得します: SELECT * FROM phonebook WHERE name LIKE Denis%

私もこれを試しました:

結果クエリは次のようになりますSELECT * FROM phonebook WHERE name LIKE 'Jhon%' OR name LIKE 'Lena%'が、Doobie では を使用する必要がない'ため、1 つの名前でも何も返されません: SELECT * FROM phonebook WHERE name LIKE 'Jhon%'

0 投票する
2 に答える
895 参照

scala - Doobie ストリームをデータベースからファイルに保存する

Doobie select は を返しますfs2.Stream(doobie.ConnectionIO, String)。ファイルに書き込む必要がある場合、明らかなオプションは、stream.compile.toList.transact(transactor)このリストを呼び出してからファイルに保存することです。

結果をリストに変換せずにストリーミングで保存する方法はありますか?

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

scala - タイプ User の Read インスタンスを作成できません。Scala での Doobie の型の誤解

doobie、http4s、および cat を使用して、データベースから User レコードを取得しようとしています。以下のコードに基づいて次のエラーを提供している型システムに悩まされています。

ルーター:

モデル:

エラー:

行を ConnectionIO[Option[User] から ConnectionIO[Option[Unit]] に変更すると、コンパイルして実行されますが、cats ライブラリから Free(...) オブジェクトが返されます。ケースクラスを返すことができない理由がわかりません!

findBy および findById メソッドの型宣言も参照してください。それらを追加する前に、ユーザーが見つかったというコンパイル エラーがありましたが、Read[User] が必要でした。同じ型宣言をルーターの findById の呼び出しに適用しようとしましたが、上記と同じエラーが発生しました。

事前に助けてくれてありがとう、そして私の無知を我慢してください。私よりもはるかに賢い型システムに出会ったことはありません!