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

database - Play Scala: anorm と Magic[T] を使用して複数のデータベースにアクセスする方法

Anorm と Magic[T] を使用して Play Scala の 2 つのデータベースにアクセスしたいと考えています (1 つは H2 で、もう 1 つは PostgreSQL)。ただ、設定方法がわかりません...

conf/application.conf で別のデータベース接続を設定できることに気付きました

しかし、どうすれば Magic で使用できますか? (Magic のソースコードを読んだのですが、理解できません... Scala の新入生です)

とにかく、複数のデータベース アクセスが Magic[T] で不可能な場合、anorm でそれを行いたいのですが、どうすれば設定できますか?

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

java - Scalaはアノームを再生します。返されたデータベースオブジェクト、そのプロパティの値を不合理な方法で取得します

こんにちは私はScalaにかなり慣れていません。
Scalaを学びたい理由は次のとおりです。

  1. Javaからボイラープレートコードを取り除くため。
  2. さまざまなパラダイムで遊んでください。
  3. 新しいことを学ぶ楽しみのためだけに

私は演劇のウェブサイトのチュートリアルに従っています。

チュートリアルコードは次のとおりです。

より深い知識を得るために、私は遊んで例を修正しました。
プレーヤーに事前定義されたIDを与えず、MySqlに割り当てさせることにしました。
MySqlでは、Player idをintとして定義しましたが、Postidをlongとして定義しました。//これは後で変更しますが、この例では重要です。

しかし、私に衝撃を与えたのは、私がそれをした方法です。2行目を見てください。これはまったくエレガントではありません。

さて、私の質問に対して、作成されたプレーヤーからより少ない方法でIDをintとして取得するにはどうすればよいですか?

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

scala - Anor および enum フィールド

Anorm のケース クラスで enum フィールド (Enumeration から拡張されたクラス) をどのように使用できるのか疑問に思っています。例えば:

そのようなコードを試してみると、「RuntimeException: タイプ models.User に対してサポートされているコンストラクターがありません」というメッセージが表示されます。そのような目的でどの DB フィールド タイプを使用すればよいですか? 運がないので varchar を試しました。

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

sql - SQL 列が「消える」 - Play フレームワーク

現在、play の yabe チュートリアルの scala バージョンを読んでいます。yabe はさらに別のブログ エンジンの略で、当然、チュートリアルのある時点でデータを保存する必要があります。最初の sql の進化は次のとおりです。

その後、投稿とコメントのテーブルが追加されます。scala 側では、各データベース エントリをケース クラスにマップできます。そのコンパニオン オブジェクトは Magic の特性を拡張し、さまざまなヘルパー関数を実装します。この問題は、Post クラスのコンパニオン オブジェクトからのこのコードによって引き起こされます。SQLクエリを見るだけで済みます:

私はコードが何をするかを理解していますが、自分でこれを思い付くことは決してなかったことを認めます.

コードをテストするために、次のテストが実行されます。

このテストは問題なく終了します。Scala の構文は多少複雑になりますが、id を持つユーザーのテスト クエリが 1 に等しいことが明確にわかります。このテストで問題が発生します。

テストは次のエラー メッセージで失敗します。

ColumnNotFound(User.id) /test/Tests.scala の 41 行目: val posts = Post.allWithAuthor

どうすれば列IDがそのように消えるのですか? SQL や Scala のコードは何も変更していません。テストを交換するだけで、エラーのオンとオフが「切り替わり」ます。どういうわけかこのSQLコード

このscala/sqlコード中にIDが見つかりません

します。

何がうまくいかなかったのか説明できますか? チュートリアルへのリンクは次のとおりですhttp://scala.playframework.org/documentation/scala-0.9.1/guide1

アップデート:

この質問を読みました: Play scala の Magic での ColumnNotFound 問題

コメントに続いて、クエリを編集しました。SQL自体は変更されていませんが、すべてを1行に貼り付けました。

それは奇跡です。今、コラムが見つかりました。クエリが 1 行よりも長い場合、テストは奇妙な ColumnNotFoundError で不平を言いますが、ワンライナーではすべて問題ありません。

このようなことがどうして起こるのでしょうか?

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

playframework - play2 の anorm の結果パーサーを理解するには?

これは、play2 のビルトインの zentasks のサンプル コードです。

フィールド キーに注意してください: project.idproject.folderproject.name

そのproject部分はどういう意味ですか?それはどこから来たのですか?

クエリ メソッドを見てください。

SQL は ですselect * from project ...。結果は次のようになります。

いいえ:

キーを直接project.???ではなくとして指定する必要があるのはなぜですか?field name

play2 はどのようにパーツを使用しproject.ますか?

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

sql - Play Scala Anorm パーサーは、パーサーがオプションとしてマークされている場合でも UnexpectedNullableFound をスローします

テーブルは次のように定義されます。

そして、私のクエリは次のようになります。

Option[String]これにより、コンパイル時に正しい型 ( ) が得られますがRuntimeException(UnexpectedNullableFound(SESSION.SOMETHING))、実行時に が発生します。

記録のために、私は Play 1.2.4、Play Scala 0.9.1、およびバンドルされている H2 データベースを使用しています。

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

postgresql - Play2 の anorm が postgresql で動作しない

play2 の anorm の行パーサーは、jdbc ドライバーによって返されるメタ データに依存していることがわかりました。

したがって、play が提供する組み込みのサンプル「zentasks」では、次のようなコードを見つけることができます。

すべてのフィールドにproject.プレフィックスがあることに注意してください。

h2 データベースではうまく機能しますが、postgresql ではうまく機能しません。portgresql を使用する場合は、次のように記述します。

play の google group でこれを尋ねたところ、Guillaume Bort は次のように述べています。

はい、postgres を使用している場合は、おそらくそれが原因です。postgresql jdbc ドライバーが壊れており、テーブル名を返しません。

postgresql の jdbc ドライバーに本当にこの問題がある場合、anorm に問題があると 思いますjoinどの名前がどのテーブルに属しているかを調べます。

だから私はテストを書きます。

1. postgresql でテーブルを作成する

2. anorm モデルの作成

3. scalatest を使用したテストケース

4.出力

「a」には「BBB1/BBB2」という名前が付いていますが、「AAA」ではありません。

次のように接頭辞を付けてパーサーを再定義しようとしました。

ただし、指定されたフィールドが見つからないというエラーが報告されます。

それはanormの大きな問題ですか?それとも何かが恋しいですか?

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

placeholder - 「?」はどこ?play2のアノームにおけるSQLのプレースホルダー

play2のアノームで次のようなsqlを記述できます。

{xxx}プレースホルダーとしてformatを使用し、マップを指定します'id->id?play1のようにプレースホルダーとして使用する方法はありますか?

私はそれを次のように書くことができるといいのですが。

この形式は非常に便利な場合があります。

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

dao - anorm には似たような dao メソッドがたくさんありますよね?

Play2 と anorm を使用しています。anorm の精神は単純な sql を書くことであり、背後に魔法はないと思います。

しかし、似たような dao メソッドをたくさん書いていることがすぐにわかりました。例えば:

メソッドはほぼ同じですが、where句がわずかに異なります。

だから私は次のようにfindWhere()メソッドを作成しました:

アクションでそれを呼び出すことができること:

動作しますが、anorm では推奨されていないと思います。

この問題を解決する最善の方法は何ですか?

0 投票する
4 に答える
11509 参照

sql - play2 でログに記録された SQL ステートメントはどこで確認できますか?

にそのような構成があることがわかりましたapplication.conf

有効にしましたが、実行された SQL を記録したログ ファイルが見つかりません。

どこでそれを見つけることができますか、または何か見逃していますか?