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

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

scala - Squeryl でデータベースを連結する

Squeryl を使用して、あるデータベースからテーブルの内容を取得し、それを別のデータベースの同等のテーブルに追加しようとしています。プロセスで主キーを再割り当てする必要がありますが、エラーNULL not allowed for column "SIMID" が表示されます。どうしてこれなの?

更新: DB と関係があるのではないかと思います。それらは、JPA/EclipseLink を使用して Java プロジェクトで作成され、エンティティのテーブルを生成するだけでなく、おそらく主キー生成用に SEQUENCE というテーブルも作成しました。

Squeryl でまったく新しいテーブルを作成し、その中に両方のデータベースの内容を手動で配置して、同じ効果を達成できることを発見しました。興味深いことに、この新しいテーブルには自動生成された SEQUENCE テーブルがありませんでした。だから、JPA/EclipseLinkが主キーをどのように生成していたかに帰着すると思いますか?

更新 2: 要求に応じて、URL に trace_level_file=3 を追加しました。ファイルはここにあります: resultsA.trace.dbおよびresultsB.trace.db。Bの方が面白いと思います。また、不要なテーブルを削除した簡易バージョンのデータベースをここに配置しました (同じデータベースが resultsA と resultsB に使用されます)。

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

scala - 作成日と更新日をsquerylで自動設定?

Lift の Record または Mapper ORM を使用しているときに、作成日と更新日を自動的に追加するトレイトを見たことを覚えています。

問題は、Squeryl がレコードが挿入された日付/時刻と、それほど重要ではないが最後に更新された日付/時刻を自動的に設定する同様の機能があるかどうかです。

そうでない場合、作成することは可能ですか?

0 投票する
0 に答える
2733 参照

sql - ScalaQuery と Squeryl では、どちらのプロジェクトがより成熟していますか?

私にとって、機能に関してはどちらも非常に似ているように見えますが、(まだ)使用せずに言うのは難しいです. だから私はいくつかの質問があります:

1) それらの機能は本当に同等ですか (多かれ少なかれ)?
2) それらのいずれかを使用したエンタープライズまたは大規模なオープン ソース システムの例はありますか?
3) Squeryl のドキュメントの方が優れている印象がありますが、ScalaQuery の場合のドキュメントの欠如は本当の問題ですか?
4) バグの修正や成長が速いのはどれですか?
5) 使いやすく生産性が高いものはありますか?

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

database - Squerylでのトランザクション分離レベルの設定

Squerylを使用してトランザクション分離レベルを設定するにはどうすればよいですか?

たとえば、現在私はPostgresqlを使用しており、特定の単一トランザクションに対してシリアル化可能な分離が必要です。私はLiftWebフレームワークでプレーンなSquerylとSqueryl-Recordの両方を使用しています。

もちろん、他のデータベースでは(単一のトランザクションではなく)セッション全体で他の分離レベルが必要になる場合があるため、一般的な回答が望ましいです。

アップデート:

私はDaveWhittakerのコードのこの修正バージョンに行き着きました:

重要なのは、トランザクションがすでに開始されている場合、分離レベルを変更することはできないということです。これは私の場合であり、ロールバックがなければ、次のようになります。

org.postgresql.util.PSQLException:トランザクションの途中でトランザクション分離レベルを変更できません。

inTransaction {}ではなくtransaction{}を使用している限り、すぐにロールバックを実行しても害はないと思います。

分離レベルは、transaction {}がコミットまたはロールバックした後、接続が接続プールに戻る前にリセットする必要があります。それを達成する方法がわかりません。しかし、私の場合、c3p0接続プールは分離レベルをリセットしているようで、自分でクリーンアップしなくても、すべてのトランザクション{}はデフォルトの分離レベルで開始されます。

私があまり満足していないのは、対立がある場合の例外です。特にそのような例外をキャッチして、トランザクションを再試行したいと思います。しかし、これは単なる一般的なランタイム例外です。

java.lang.RuntimeException:ステートメントの実行中に例外が発生しました:エラー:同時更新のため、アクセスをシリアル化できませんでした

残念ながら一般的な別の例外(org.postgresql.util.PSQLException)をラップします。

完璧ではありませんが、Squerylがトランザクション分離のサポートを取得するまでは機能します。上記のコードをSqueryl0.9.4で使用しています。

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

scala - 「using」によるSquerylセッション管理

私は Squeryl を学んでおり、'using' 構文を理解しようとしていますが、ドキュメントが見つかりません。

次の例では、2 つのデータベースが作成されます。A にはHelloという単語が含まれ、B にはGoodbyeが含まれます。その意図は、A の内容を照会し、Worldという単語を追加して、結果を B に書き込むことです。

予想されるコンソール出力はInserted Message(2,HelloWorld)です

現状では、 toListがval 結果行の最後に追加されていない限り、コードはInserted Message(2,GoodbyeWorld)を出力します。

using(sessionB)内で評価された場合でも、結果クエリをバインドしてsessionAを使用する方法はありますか? これは、toListを使用して、クエリに内容を評価させてメモリに保存させるよりも望ましいようです。

アップデート

Dave Whittaker の回答のおかげで、次のスニペットは「toList」に頼らずにそれを修正し、「使用」とクエリの実行の両方についての私の理解を修正します。

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

database - デスクトップアプリケーションにSquerylおよびH2データベースを使用した場合のパフォーマンスの問題

ローカルH2データベースにデータを保持するデスクトップアプリケーションがあります。Squerylを使用してデータベースに接続しています。

データベースのサイズは非常に小さいです(約10kB)。深刻なパフォーマンスの問題が発生しており、大量のディスクIOが実行されています。私はDBを読んでいるだけなので、完全なデータをキャッシュできると思っていました。キャッシュサイズをある値に設定することもできます(合計データベースサイズよりもはるかに大きい)。また、ロックを無効にしてみましたが、結果はありませんでした。

私のプログラムは、データベースに対して非常に多くの小さなクエリを実行します。TableModel基本的に、すべてのテーブルエントリ(各行の各列)に対してクエリを実行するSwingがあります。これらの各呼び出しをSqueryltransactionブロックにラップしています。

JVisualVMを使用してプロファイルを作成しましたが、次の呼び出しツリーに問題があると思われます。一番上の方法は、私のコードからの読み取りアクセスです。

JVisualVMスクリーンショットへのリンク。

質問

どうすればこれを修正できますか、または何が間違っていますか?どういうわけか、1MB未満のメモリに保持できるほど小さいDBに対して多くの小さな呼び出しを行うことができるはずです。このディスクIOが発生しているのはなぜですか?どうすれば回避できますか?

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

scala - manytoManyRelationが追加された後の頑固なExceptionInInitializerError

Playで構築されたアプリで簡単な認証を行っています!とScala。manyToManyRelation最近まで、DBオブジェクトにを作成するまで、単純な認証は問題なく機能していました。

エラー:

エラーは、このコードの2行目を示しています。

DBオブジェクトに加えられた変更は次のとおりです。

コードには各ユーザーがアカウントを持っている必要がないため、これがどのように影響するかについては困惑しています。何か洞察はありますか?ありがとう。

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

scala - Scalaでオブジェクトの値を適切に設定するには?

HTTP POST からパラメーターを取得してデータを解析する Scala def があります。データベースから「ジョブ」オブジェクトを取得しています (デバッガーで検証されたクエリは成功し、パラメーターは必要なとおりです)。そのジョブ オブジェクトを新しいパラメーターで更新しようとしています。ただし、ジョブ オブジェクトは元の値をすべて保持するため、値を割り当てようとしても無駄です。

すべてのデータベース オブジェクトは Squeryl のものです。以下のコード:

編集:以下のクラスと Job オブジェクトを追加して、この Play でコンテキストを提供するのに役立ちます! アプリ

job.name -> name試してみても何も起こらず、試してみるとjob.name = nameScalareassignment to valエラーが発生するので困惑しています。var nameの代わりに試してみると、同じエラーが発生しますval name

これは明らかに私の側の構文の問題です。これを処理する適切な方法は何ですか? ありがとう!

詳細情報:これが役立つ場合は、Play で使用される Job クラスを次に示します。アプリ:

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

mysql - 既存のMySqlスキーマを反映するようにSquerylデータオブジェクトを自動生成できますか?

MySqlデータベースに既存のスキーマ定義があります。MySqlWorkbenchを使用してスキーマを作成しました。

Lift-Scala-Squerylコードからスキーマにアクセスしたいと思います。簡単な方法は、Squerylデータオブジェクトを使用してスキーマ構造を手動で定義することです。

既存のMySqlスキーマからSquerylデータオブジェクトを生成する自動化された方法はありますか?

私は次の一般的な質問を見つけましたが、正確ではありませんが、素朴な構造を生成する方法があると確信しています。それは手作業のより良い出発点を可能にします。

ありがとう、デビッド。

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

scala - 遊ぶ!@Before、trait、および Squeryl が閉じた接続をスローする問題はありますか?

更新された質問さらにデバッグした後、この質問を更新して、実際の問題をより正確にしました。

基本的なセキュリティ チェックを実行するために定義した特性がありますが、DB クエリを実行するたびにCannot operate on a closed connection!!!エラーがスローされます。

以下のコード:

getByKeyDB エラーがスローされます。私のコントローラーではSqueryl、特性として追加していますが、それを別の特性に適用して、クエリを実行し続けるにはどうすればよいでしょうか? それとも、これに適切にアプローチしていないだけですか?ありがとう。