問題タブ [esqueleto]

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 に答える
185 参照

database - 多分関係で参加を実行しています

私はモデルを持っています

とモデル

結合クエリで割り当てに関連付けられているすべてのファイルを取得したいと思います。私はEsqueletoを試しましrunJoinselectOneManyが、運がなかったので、結合を使用しないか、rawSqlを使用することを検討しています。それは本当に良い考えではないようですが、私はこれを理解することはできません。その機能のサポートはありますか?

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

sql - Esqueleto/raw SQL -- 別のテーブルでの並べ替えの結果でクエリを並べ替えますか?

実際、私は SQL の仕組みに少し慣れていません。常に ORM にすべてを任せていました。しかし、この場合、Persistent はこの種の機能を公開していないため、何をすべきか途方に暮れています。

私は多対多の関係を持っています:

そして、タグを主に最新のエントリの日付 (降順) で並べ替え、次にラベル (昇順) で並べ替えたいと考えています。

TagCarの最新のエントリは 1 月 3 日なので、最初に表示されます。tagAppleの最新のエントリは 1 月 2 日ですが、 tag もそうですBoat。ただし、ラベルはアルファベット順でAppleラベルの前に来るため、2 番目と3 番目になります。BoatAppleBoat

私の調査を通じて、これを行うには何らかの結合の組み合わせが必要であることがわかりました。ただし、これまでのところ、1 対多の関係 (スレッド内のトピックを最新の投稿で並べ替える) の解決策しか見つかりませんでした。それらを理解していると思いますが、多対多のこれらの 3 方向結合を含むものはありません。関係。

可能な答えとして生のSQLを含めています.SQLの方法を本当に求めているだけだと思います.SQLバインディングにEsqueletoを使用していますが、SQLを理解したら、 Esqueleto への変換は簡単です。バックエンドとして postgresql を使用していますが、私のバインディングは一般的なバックエンド用であるため、postgres 固有のものは使用したくありません。

どこから始めればよいか誰にも分かりますか?どの種類の結合を確認する必要がありますか?また、最新のエントリをどのように並べ替えるのですか?

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

postgresql - Esqueleto `selectDistinct` が機能しない

selectDistinctおそらく単純なエラーです。クエリ:

これが機能するSQLクエリを表していると確信しています:

結果を表示するために、結果テーブルを印刷するためのテスト ハンドラーがあります。tpart 1、ラウンド 1 には、複数の穴 1 と穴 2 があることに注意してください。postgresql では、SELECT DISTINICTこれらの重複が削除されました。

読みづらくてすみません。どんな助けでも大歓迎です!

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

haskell - esqueleto に SQL 文字列を生成させるにはどうすればよいですか?

esqueleto でfromステートメントから SQL 文字列を生成するにはどうすればよいですか?

のドキュメントにtoRawSqlは、「永続的なクエリ ログをオンにするだけでよい」と記載されています。理解できるすべての可能な形式を試しMonadLoggerましたが、SQLを出力しませんでした。同じドキュメントには、「この関数を手動で使用することは...可能ですが面倒です」とも書かれています。ただし、型のコンストラクターも型の値を返す関数QueryTypeもエクスポートされません。QueryTypeであることに気づき、!newtypeを使用することで、なんとかこれを回避できました。unsafeCoerce

Connectionまた、SQL を生成するためにデータベースに接続する必要がないにもかかわらず、(SQLite 経由で取得した) を提供することを余儀なくされました。

これは私が持っているものです。もっと良い方法があるはずです。

http://hackage.haskell.org/package/esqueleto-1.3.4.2/docs/Database-Esqueleto-Internal-Sql.html

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

sql - Database.Esqueleto SQL 演算子を動的に選択する

Database.Esqueletoデータベースに保存されているデータに基づいてクエリを動的に作成したいと考えています (DynamicQuery Database.Persist以下のコード スニペットのエンティティを参照してください)。op以下のコードはコンパイルされますが、定義が繰り返されているため (テキスト フィールド タイプ、op2日フィールド タイプ、およびフィールド タイプ) op3、あまり洗練されていませんBool

opの定義ですべての場合に使用できるような、より一般的な関数を書くことは可能exprですか?

opが使用されている Day フィールド タイプを再利用しようとするとop2、次のエラー メッセージが表示されます。

コード スニペットは次のとおりです。

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

haskell - quasiquoter を使用して Database.Persist モデルに一意のキーを追加するにはどうすればよいですか?

persistLowerCasequasiquoterを使用して 2 つ以上のフィールドを持つ一意のキーを作成するにはどうすればよいですか?

Yesod bookDatabase.Persistのガイダンスを使用して単純な Web サイトのモデルを作成するために を使用すると、次のエラーが発生します。

アプリ/Models.hs

アプリ/Handlers.hs

バージョン:

  • Haskell プラットフォーム 2013.2
  • Cabal== 1.19.2
  • persistent== 1.3.0.2
  • scotty== 0.6.2
  • esqueleto== 1.3.4.5

拡張機能が欠落しているか、何か他のものを見落としていますか?

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

haskell - Haskell: Yesod と Esqueleto

Yesod 1.2 の runDB を Esqueleto で動作させるにはどうすればよいですか?

エラー出力は次のとおりです。

私はこのチュートリアルに従おうとしていましたが、Yesod スキャフォールディングとは異なる方法で runDB を設定しているようです。https://github.com/yesodweb/yesod/wiki/Multi-select-field-populated-from-database-(esqueleto を使用)