問題タブ [squeryl]
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 - Squerylを使用してOneToManyリレーションを作成しようとしたときのアサーションの失敗
データベースに2つのクラスがあり、1対多の関係を設定したいと考えています。複雑なことは何もありません。ただし、squerylの_splitEquality(576行目)でアサーションエラーが発生します。Squerylはバージョン0.9.5です
だから私はスキーマを持っています
fooはどこにありますか
とバーは
ただし、これは実行時に前述のアサーションの失敗、具体的には次のように
assert(ee.right._fieldMetaData.isIdFieldOfKeyedEntity)
失敗します。
scala - SquerylをPlayで動作させる方法!フレームワーク?
PlayとSquerylを使って簡単なデータベースアプリを作成する方法を学ぼうとしています。Playチュートリアルからタスクアプリを作成しましたが、モデル/スキーマを変更して、AnormではなくSquerylを使用するようにします。私はさまざまなチュートリアル、例、および回答を見てきましたが、これを行う方法を実際には理解していません。
したがって、Playチュートリアル(ScalaTodoList)のソースコードが与えられます。Squerylで動作させるにはどうすればよいですか?
すなわち:
- モデルに、、、およびメソッドを実装する
all()
にはどうすればよいですか?(タスクに自動インクリメントIDを使用したい)create()
delete()
- 使用するデータベースアダプタは現在、およびにハードコードされています
Build.scala
(Global.scala
以下を参照)。PlayチュートリアルのAnormの場合と同様に、H2を開発/テストとHerokuのPostgresに自動的に使用するようにするにはどうすればよいですか? - テーブルが自動的に作成されるようにするにはどうすればよいですか?
これは私がこれまでにやったことです
PlayScalaTodoListチュートリアルを完了しました。
、、project/Build.scala
にobject ApplicationBuild
依存関係を追加しました。
追加app/Global.scala
(上記のSOの回答から取得、アダプターをH2に変更しただけ):
で、インポートを追加し、、、、およびapp/models/Task.scala
のAnorm実装を削除しました。Playチュートリアルのコントローラーは、メソッドがを返すことを期待しています。all()
create()
delete()
all()
List[Task]
残りのファイルは、Playチュートリアルの最後に残っています。
scala - Scalaでケースクラスを動的に生成する
かなり大きなcsvファイルを読み取って処理します(スライス、ダイス、要約など)interactively
(データ探索)。私の考えは、ファイルをデータベース(H2)に読み込み、SQLを使用して処理することです。
ファイルを読む:Ostermillercsvパーサーを使用します
各列のタイプを決定します。ランダムに50行を選択し、各列のタイプ(int、long、double、date、string)を導き出します。
Squerylを使用して処理したいと思います。そのためには、ケースクラスを動的に作成する必要があります。これがこれまでのボトルネックです。
ファイルをH2にアップロードし、任意のSQLコマンドを使用します。
私の質問:
- Scalaでこれを行うためのより一般的なインタラクティブな方法はありますか?
- 3点目を解決する方法はありますか?別の言い方をすれば、タイプのリスト(csvファイルの列に対応)が与えられた場合、Squerylのテーブルに対応するケースクラスを動的に作成することは可能ですか?私の理解では、マクロを使用してそれを行うことができますが、それを行うのに十分な露出がありません。
sql - PhoneGap +データベース結果をデータベースに保存する方法と、ページでデータストックを使用する方法
私のJavascriptの理解は本当に限られています。簡単な計算があります。A
B
とC
は3つの入力番号であり、D
PhonegapとjQueryを使用して、将来使用するためにデータベースiOSに結果が必要です。
これは私の簡単なJavaScriptです
私の質問は、このデータ結果Math.round(d);
を電話ギャップデータベースに保存し、それを毎日のページ結果で再び使用するにはどうすればよいかということです。
ありがとう。
scala - Squeryl:クエリを明示的に実行する
squerylでクエリを作成すると、Query[T]オブジェクトが返されます。クエリはまだ実行されておらず、Queryオブジェクトを反復処理すると実行されます(Query[T]はIterable[T]を拡張します)。
クエリの実行の前後には、transaction{}またはinTransaction{}ブロックのいずれかが必要です。
SELECTクエリについて話しているだけで、トランザクションは必要ありませんが、squerylフレームワークにはそれらが必要です。
アプリケーションのモデルでクエリを作成し、それをビューに直接渡します。ビューでは、テンプレートのビューヘルパーがクエリを繰り返し処理してデータを表示します。これは、transaction {}ブロックをコントローラーに配置する場合にのみ可能です(コントローラーにはテンプレートの呼び出しが含まれているため、反復を実行するテンプレートも内部にあります)。モデルは実際にはクエリを実行しないため、transaction{}ブロックをモデルに配置することはできません。
しかし、私の理解では、トランザクションはコントローラーとは何の関係もありません。どのデータベースフレームワークを使用するか、どのように使用するか、どこでトランザクションを使用するかは、モデルの決定です。したがって、transaction{}ブロックをモデルに含める必要があります。
Query [T]インスタンスを返す代わりに、このQuery[T]オブジェクトでIterable[T] .toListを呼び出してから、作成されたリストを返すことができることを知っています。次に、クエリ全体がモデルで実行され、すべてが正常に実行されます。しかし、データベースから要求されたすべてのデータをこのリストにキャッシュする必要があるため、このアプローチは好きではありません。このデータをビューに直接渡す方法がいいと思います。結果セットが大きいときに結果セットをストリーミングするMySql機能が好きです。
可能性はありますか?たぶん、データベースにリクエストを送信し、トランザクションを閉じることができる関数Query [T] .executeNow()のようなものですが、それでもMySQLストリーミング機能を使用し、残りの(選択された、したがって修正された)結果セットを次の場合に受け取ります。アクセスしましたか?結果セットはクエリの瞬間に修正されるため、トランザクションを閉じることは問題にはなりません。
scala - Squeryl ORM の WHERE サブクエリで gt、gte などを使用する
私は最近、Squeryl ORMの評価を開始しました。これは素晴らしいように見えますが、最終的に、Squeryl で「構築」するのに問題があると思われる SQL クエリにたどり着きました。
すべての製品の平均数量よりも多い数量を持つすべての製品を入手したいと考えています。SQL では、これは次のようになります。
Squeryl が をサポートしておりin()
、-clause サブクエリでサポートしていることは既にわかっています。しかし、Squeryl は集計もサポートしているため、次のようなことが可能になることを願っていました。exists()
notExists()
where
avg
悲しいことに、これにより次のことが発生します。
もちろん、2つのクエリでそれを行うことはできますが(最初に平均数量を取得してから2番目のクエリで使用します)、サブクエリを含む1つのクエリでそれを行うことができるかどうか疑問に思っています.
これは Squeryl では不可能ですか、それとも何か足りないのでしょうか?
これが可能かどうか、また可能であれば、その方法を教えていただければ幸いです。
ありがとう、
セバスチャン
scala - Squeryl ORMは、Long、bigints、および演算子の使用に失敗しますか?
Squerylは今日それを持っていません。これまで回避できなかった厄介なエラーが発生しました。
Postgresによってスローされたエラー:
Scala Longをbigintフィールドに格納してからクエリを実行していることを除いて、このエラーがスローされる理由がわかりません。私は何か間違ったことをしていますか?
これらはすべてSquerylORMで実行されるため、タイプが正しいと90%確信しています。私のコードもコンパイルされます。
編集
これは文字通り、クエリに使用しているコードです。あまりない...
scala - Squerylのwhere"clause"のエラー"java.util.Dateはパラメータを取りません"
私はScalaにかなり慣れておらず、現在、MySQLデータベースに対してSquerylと呼ばれるORMを使用しています。
私がやろうとしているのは、時間範囲内にある複数のレコードを検索することです。たとえば、プレーンSQLでは、次のようになると思います。
ただし、以下と同様の動作を実現するためのScalaコードでは、「from(records)」の最初の括弧に「java.util.Dateはパラメーターを取りません」というエラーが表示されます。
(ここで、val records = tableRecord
私はここで何が間違っているのですか?よろしくお願いします。
scala - org.squeryl.dsl.Groupのコンテンツを印刷するにはどうすればよいですか?
SquerylORMとScalaを使用します。初めて、グループ化を使用したJOINステートメントを実行しました。確かに、コンテンツの反復を開始する方法がわかりません。
参加は次のとおりです。
内容を印刷するにはどうすればよいですか?
私は試した:
しかし、コンパイラエラーが発生しました:
mysql - Squeryl: KeyedEntity.id が挿入時に更新されない
テーブル定義があります
データベース テーブルは Squeryl によって生成されたものではありません (手動で作成しました) が、「ID」列は PrimaryKey と AutoIncrement に設定されています。
今、このテーブルに行を挿入しています:
行はデータベースに正しく挿入され、そこで ID が割り当てられます (!=0)。しかし、アプリケーションはコマンド ラインに "ID1=0; ID2=0" を出力します。
なんで?また、割り当てられた ID を取得するにはどうすればよいですか?
編集: この方法でテーブル定義も試しました
違いはありませんでした。