問題タブ [anorm]
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.
parsing - playframework 2.0 で anorm パーサーを scala で再利用する方法
computer-database サンプルを調べたところ、Computer パーサーを再利用するために、list メソッドが Computer.withCompany パーサーを使用し、(Computer, Company) のタプルを返すことがわかりました。
私が処理しなければならない場合、コンピューターのIDへの参照の代わりに、このようにコンピューターオブジェクトが必要です
case class Computer(id: Pk[Long] = NotAssigned, name: String, 導入: Option[Date], 廃止: Option[Date], company: Company)
だから私は次のようなものをどのように達成できるかを考えていました(もちろんseudocodeです)
明らかに、難しい部分は getCompany を解決する方法です。
何か案が???
playframework - Anormパーサーコンビネーターを自動的に生成するツールはありますか?
Anormとパーサーコンビネーターを使い始めたばかりです。ボイラープレートコードが非常に多いようです。たとえば、私は
すべてが定義される前に、各データベースフィールドが4回(!)繰り返されます。パーサーは、ケースクラスから半自動的に推定できるはずです。ここでの作業を減らすために提案するツールやその他のテクニックはありますか?
ポインタをありがとう。
mysql - Play 2.0複雑な結合クエリの解析方法(Anorm)
私はplay2.0フレームワークを使用してウェブサイトを書いています。また、結果を解析するときに問題が発生します。mysql dbへのこのリクエストは、エピソードとアニメに関するすべての情報とともに、エピソードごとにデータベースに追加されたすべてのリンク(エピソードごとに複数の場合があります)を取得します。
戻り値はのタイプですが、ジャンルをどこに置くかわからない、またはわからないList[(((Episode,Anime),Link),Genre)]
というリストへの出力をどのように形成できます か。List[episode,anime,Seq[links]]
List[episode,anime,Seq[Genres],Seq[links]]
1つのエピソードごとに2つのリンクがある場合、テーブルアニメとyas_episodesからの情報がすべての行にコピーされることを想像できます。だから私はどういうわけかエピソードレコードごとにそれらを一緒に(グループ化して)積み重ねる必要があります。その後、リストを繰り返し、すべてのオブジェクトにアクセスできるようになります。
ご覧のとおり、リクエストにはアニメとジャンルの多対多の関係があります。ビューでアクセスできるように、すべてを1つのリストにまとめる方法がわかりません。ジャンルはアニメモデルの一部である必要がありますか?
mysql - MySQL 例外: SQL トランザクションの実行
SQL トランザクションを MySQL にコミットしようとしていますが、MySQLSyntaxErrorException
.
私が使用しているコードは次のとおりです。
私が得る例外:
Anorm ではそのようなステートメントをまったく実行できないと思い始めています。
scala - RowParser の出力としてストリームを取得する簡単な方法はありますか?
これまで見てきたコード サンプルによるとrowParser
、 typeが与えられた場合RowParser[Photo]
、 table からの行のリストを解析する方法は次のとおりです。photo
*
オペレーターが type のパーサーを作成する場所ResultSetParser[List[Photo]]
。さて、私は (より怠惰な方が常に良いと考えて) を生成するパーサーを取得することも同様に可能かどうか疑問に思っていましたが、Stream
私はこれしか思いつきませんでした:
動作しますが、複雑すぎるようです。toStream
もちろん、最初の関数から取得したを呼び出すこともできますが、実際に読み取られる行List
にのみ適用することが目標でした。rowParser
これを達成する簡単な方法はありますか?
編集:limit
対象の行数が事前にわかっている場合、クエリで使用する必要があることはわかっています。また、多くの場合、とにかく結果全体を使用することになるため、怠けてもパフォーマンスは向上しないことも認識しています。ただし、いくつかのサイクルを節約できる場合もあります。たとえば、何らかの理由で、SQL で表現できない、または表現したくない検索基準がある場合などです。Stream
したがって、 anorm がofを取得する方法を提供するという事実を考えると、それに aSqlRow
を適用する簡単な方法を見つけられなかったのは奇妙だと思いRowParser
ました。
scala - PlayでAnromを使用しているときに、「as」から結果のストリームを取得できますか?フレームワーク?
PlayでAnormを使用しているときに、このようなステートメントがある場合!フレームワーク:
モデルオブジェクトのリストが返されるようです。これを別の方法で実行して、代わりにStream [Note]を取得して、行の「遅延」読み込みを実行できますか?または、リストを返していると主張しているにもかかわらず、すでに何らかの形で存在している可能性があります。
つまり、all()。headを実行する場合は、最初の行のみをフェッチする必要があります。「as」の前はストリームとして始まりますが、「as」の後にはリストであるように見えます。
playframework-2.0 - Play2.0は更新されていません
Play2.0バージョンに問題があります。anormの新しいgetAliasedメソッドを使用する必要がありますが、見つかりません:
値getAliasedはanorm.MetaDataのメンバーではありません
その間、それはこのコミットで追加されました:https ://github.com/playframework/Play20/pull/370
私のplugins.sbtは次のように言っています:
addSbtPlugin( "play"% "sbt-plugin"% "2.0.4")
対応するライブラリコードが4か月前にマスターPlay2.0にプッシュされた場合、コードがコンパイルされないのはなぜですか?
参考までに、私のコード:
MetaData(null).getAliased( "")
scala - anorm動的フィルター
私は(playフレームワークからの)anormドキュメントを少し勉強していますが、それが一般的なクエリのユースケースをサポートしているかどうかは明確ではありません:動的フィルター、つまりユーザーが10フィールドの検索フォームに2つまたは3つの検索条件を入力します。
この場合、従来の文字列操作なしで動的にクエリを作成するにはどうすればよいですか?
scala - Playframeworkでanormを使用するときにキャッシュメカニズムを追加する方法
anormはORMフレームワークではなく、SQLによって直接データをクエリしているようです。ほとんどのアプリケーション/Webサイトでは、毎回データベースにクエリを実行する必要はありません。SQLまたはアイテムIDのいずれかでデータをキャッシュする必要があります。PlayFrameworkが何らかのキャッシュメカニズムを提供しているかどうか疑問に思いますか?それを追加する方法がない場合は?
ありがとう。
sql - Play Anorm と SQL 接続
Anorm フレームワークを使用した Scala の Play 2.0 は、データベースとやり取りするための 2 つの方法を提供します。
withConnection が呼び出されるたびに接続を取得して閉じることは明らかです。
両方のメソッドが毎回接続を作成して閉じるのはなぜですか? それは高価なプロセスではありませんか?