問題タブ [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.
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%'
。
scala - Doobie ストリームをデータベースからファイルに保存する
Doobie select は を返しますfs2.Stream(doobie.ConnectionIO, String)
。ファイルに書き込む必要がある場合、明らかなオプションは、stream.compile.toList.transact(transactor)
このリストを呼び出してからファイルに保存することです。
結果をリストに変換せずにストリーミングで保存する方法はありますか?
scala - タイプ User の Read インスタンスを作成できません。Scala での Doobie の型の誤解
doobie、http4s、および cat を使用して、データベースから User レコードを取得しようとしています。以下のコードに基づいて次のエラーを提供している型システムに悩まされています。
ルーター:
モデル:
エラー:
行を ConnectionIO[Option[User] から ConnectionIO[Option[Unit]] に変更すると、コンパイルして実行されますが、cats ライブラリから Free(...) オブジェクトが返されます。ケースクラスを返すことができない理由がわかりません!
findBy および findById メソッドの型宣言も参照してください。それらを追加する前に、ユーザーが見つかったというコンパイル エラーがありましたが、Read[User] が必要でした。同じ型宣言をルーターの findById の呼び出しに適用しようとしましたが、上記と同じエラーが発生しました。
事前に助けてくれてありがとう、そして私の無知を我慢してください。私よりもはるかに賢い型システムに出会ったことはありません!