問題タブ [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.

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

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 を解決する方法です。

何か案が???

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

playframework - Anormパーサーコンビネーターを自動的に生成するツールはありますか?

Anormとパーサーコンビネーターを使い始めたばかりです。ボイラープレートコードが非常に多いようです。たとえば、私は

すべてが定義される前に、各データベースフィールドが4回(!)繰り返されます。パーサーは、ケースクラスから半自動的に推定できるはずです。ここでの作業を減らすために提案するツールやその他のテクニックはありますか?

ポインタをありがとう。

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

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つのリストにまとめる方法がわかりません。ジャンルはアニメモデルの一部である必要がありますか?

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

mysql - MySQL 例外: SQL トランザクションの実行

SQL トランザクションを MySQL にコミットしようとしていますが、MySQLSyntaxErrorException.

私が使用しているコードは次のとおりです。

私が得る例外:

Anorm ではそのようなステートメントをまったく実行できないと思い始めています。

0 投票する
3 に答える
720 参照

scala - RowParser の出力としてストリームを取得する簡単な方法はありますか?

これまで見てきたコード サンプルによるとrowParser、 typeが与えられた場合RowParser[Photo]、 table からの行のリストを解析する方法は次のとおりです。photo

*オペレーターが type のパーサーを作成する場所ResultSetParser[List[Photo]]。さて、私は (より怠惰な方が常に良いと考えて) を生成するパーサーを取得することも同様に可能かどうか疑問に思っていましたが、Stream私はこれしか思いつきませんでした:

動作しますが、複雑すぎるようです。toStreamもちろん、最初の関数から取得したを呼び出すこともできますが、実際に読み取られる行Listにのみ適用することが目標でした。rowParserこれを達成する簡単な方法はありますか?

編集:limit対象の行数が事前にわかっている場合、クエリで使用する必要があることはわかっています。また、多くの場合、とにかく結果全体を使用することになるため、怠けてもパフォーマンスは向上しないことも認識しています。ただし、いくつかのサイクルを節約できる場合もあります。たとえば、何らかの理由で、SQL で表現できない、または表現したくない検索基準がある場合などです。Streamしたがって、 anorm がofを取得する方法を提供するという事実を考えると、それに aSqlRowを適用する簡単な方法を見つけられなかったのは奇妙だと思いRowParserました。

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

scala - PlayでAnromを使用しているときに、「as」から結果のストリームを取得できますか?フレームワーク?

重複の可能性:
RowParserの出力としてストリームを取得する簡単な方法はありますか?

PlayでAnormを使用しているときに、このようなステートメントがある場合!フレームワーク:

モデルオブジェクトのリストが返されるようです。これを別の方法で実行して、代わりにStream [Note]を取得して、行の「遅延」読み込みを実行できますか?または、リストを返していると主張しているにもかかわらず、すでに何らかの形で存在している可能性があります。

つまり、all()。headを実行する場合は、最初の行のみをフェッチする必要があります。「as」の前はストリームとして始まりますが、「as」の後にはリストであるように見えます。

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

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( "")

0 投票する
3 に答える
1679 参照

scala - anorm動的フィルター

私は(playフレームワークからの)anormドキュメントを少し勉強していますが、それが一般的なクエリのユースケースをサポートしているかどうかは明確ではありません:動的フィルター、つまりユーザーが10フィールドの検索フォームに2つまたは3つの検索条件を入力します。

この場合、従来の文字列操作なしで動的にクエリを作成するにはどうすればよいですか?

0 投票する
3 に答える
2101 参照

scala - Playframeworkでanormを使用するときにキャッシュメカニズムを追加する方法

anormはORMフレームワークではなく、SQLによって直接データをクエリしているようです。ほとんどのアプリケーション/Webサイトでは、毎回データベースにクエリを実行する必要はありません。SQLまたはアイテムIDのいずれかでデータをキャッシュする必要があります。PlayFrameworkが何らかのキャッシュメカニズムを提供しているかどうか疑問に思いますか?それを追加する方法がない場合は?

ありがとう。

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

sql - Play Anorm と SQL 接続

Anorm フレームワークを使用した Scala の Play 2.0 は、データベースとやり取りするための 2 つの方法を提供します。

withConnection が呼び出されるたびに接続を取得して閉じることは明らかです。

両方のメソッドが毎回接続を作成して閉じるのはなぜですか? それは高価なプロセスではありませんか?