問題タブ [scalaquery]
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 - ScalaQuery は DDL を作成していませんか?
scala オブジェクトにサンプル DB がありますが、テーブルが作成されません。
初期化を呼び出してから addEntries を呼び出すと、JDBC レイヤーによってテーブルが存在しないという例外が発生します。どこが間違っていますか?
scala - List[Map[String,A]] を scalaquery のデータベース テーブルに
昨日スカラクエリについて学んだばかりで、役に立ちそうです。List[Map[String,A]] (A はプリミティブ型 - Int、Float、String などで、各マップのキーのセットは同じ) をデータベース テーブルに変換したいと思います。scalaquery で動的テーブル作成の例を見つけることができませんでした (列の数、つまりキーの数が動的です)。
基本的に、私はこの (および関連する) コレクションでリレーショナル代数を行うことに興味があります。計算されたスカラクエリが最適です。そうでない場合は、代替案を提案してください。
scala - Scalaクエリで*または同等のものを選択します
Playframework2にこのScalaQueryモデルがあります
Select *を実行して、のすべての行を返したいのですがUsersTable
。UsersTableプロジェクションを使用してこれを行うことは可能ですか?私はこのように見えるいくつかの例を見てきました
基準に一致する行を選択します。それを渡さずにこれを行うにはどうすればよいですか?
ありがとう!
scala - 無効なSQLを生成するScalaクエリ
私はscalaqueryを使用してoracleサーバーとpostgresサーバーの両方に接続しています。この動作はOracleとPostgresの両方で発生していますが、Postgresでは有効な(そしてまだ正しくない)SQLのみです。
ある時点で、次の形式のscalaqueryでクエリを実行しています。
パラメータは特性であり、その中にfooが含まれていることが知られています。
ここでの問題は、実行される最大100のクエリのうち、scala-queryが正しいSQLを1回だけ生成することです。
ほとんどの場合、代わりに生成されます
なぜこれが一貫して発生しないのですか、それはバグですか(私はそれがそうであると思います)、そしてどのようにそれを回避するのですか?
scala - 再利用可能なトレイトを作成するために、ScalaQuery でクエリを作成するにはどうすればよいですか?
さまざまなクエリ コンポーネントを 1 つのクエリに構成するのに問題があります。私の目標は、一連の特性 (SoftDeletable、HasName、SortedByName、WithTimestamps など) を作成して、Table オブジェクトに簡単に組み合わせてその動作を追加できるようにすることです。
理想は次のようになります。
ScalaQuery でこのようなことを行うことはできますか? 主な問題点は次のとおりです。
SoftDeletable.allQuery
でフィルターをきれいに構成し、で並べ替えるにはSortedByName.allQuery
どうすればよいBaseModel.allQuery
ですか?メソッドのサブクラス実装に列を追加することにより
*
、タプル型パラメーターTable
は後者に一致しません - これらの特性が最終的な具象クラスの列タプルに新しい型を段階的に追加する方法はありますか? (あるとは思っていませんが、欠けているものがあればいいのですが)。すべてのトレイトで長いタプル宣言を繰り返す必要がありますが、テーブルに 5 つまたは 6 つの列がある場合、これは非常に扱いにくくなります。次のようなことをしなくても済むように、型メンバーでできることはありますか?
/li>
この繰り返しをすべて避けることはできますか?IRC の jesnor からの提案に基づいて、次のようにいくつか回避することができました。
つまり、特定の特性を組み合わせることで、タプル宣言全体を繰り返す必要がなくなります。もちろん、欠点は、さまざまな特性を簡単に混在させることができなくなったことです。この繰り返しを避けるために、特定のサブクラスをたくさん作成する必要があります。別の方法はありますか?
更新:だから、個別の CaseClass と TupleClass 型パラメーターを使用する必要がないことに気付きました。ケース クラスは を実装Product*
しているため、ケース クラス名を Table に渡すだけで、3 の問題は解決します。
h2 - ScalaQueryが外部キーのddlを作成しないのはなぜですか?
ScalaQuery 0.10.0-M1を使用して次のテーブル定義があります:
ただし、このスニペットを使用してddlを作成(および印刷)する場合は、次のようになります。
外部キーは生成も印刷もされません。
何故ですか?そして、どうすれば修正できますか?
postgresql - ScalaQuery O/R フレームワークでのカスタム型のマッピング
ScalaQuery と Squerylの比較で、Stefan Zeiger (ScalaQuery の作者) は 3 番目の箇条書きで次のように述べています。
ScalaQuery は JDBC 型の基本セットをサポートしており、DBMS 固有またはアプリケーション固有の型で拡張できます。
ただし、実際にこれを行う方法の例や説明を見つけることができませんでした。Postgres データベース用の ScalaQuery スキーマを作成しようとしています。このスキーマでは、Postgres 内で作成したカスタム列挙型の列がいくつかあります。
たとえば、gender
可能な値male
とを持つ という列挙型がありfemale
ます。これは Java 列挙型ではなく、整数としてデータベースに永続化されます。むしろ、DBMS 内で定義されたカスタム Postgres タイプです。Postgres は、これらをプリミティブとしてではなく、特別な 4 バイトのデータ構造で保存します。
gender
タイプの Postgres 列をScalaQuery スキーマ に組み込むにはどうすればよいですか?
(また、別の強く型付けされた O/R アプローチがタスクにより適していると思われる場合は、コメントをいただければ幸いです。私は既に Squeryl を見てきましたが、カスタム型がプリミティブとして永続化されていない限り、カスタム型を処理できるとは考えていません。 DBMS)。
scala - ScalaQueryクエリを条件付きで拡張
カウントおよびオフセットパラメータの有無に応じて条件付きで拡張しているクエリがあります。
}
このアプローチと比較して、これを書くためのより簡潔な方法があるかどうか私は興味があります。
教えてください。
scala - このScalaQueryステートメントが奇数行のみを削除するのはなぜですか?
レコードのバッチを削除しようとすると、奇数行のみが削除されます。
代わりにレコードを印刷すると、正しい行数が得られます。
私はこのような問題を回避しました。これにより、目的のSQLが生成されます。
しかし、なぜ、またはどのように変異バージョンが奇数行にのみ影響するのでしょうか。
scala - 新しいScalaプロジェクトのNoSQL(MongoDBなど)またはRDMS(PostgreSQLなど)?
私はScalaで新しいプロジェクトを開発しています。これは一連のCRUD操作のアプリケーションにすぎませんが、いくつかの風変わりな要件があるため、Play2またはLiftは法案に適合しないため、アプリケーションをゼロから開発します。これは、AnormまたはScalaQueryがデータベース統合の選択肢としてはあまり明白ではなくなり、疑問が残ることを意味します。何か新しいことを試すときが来たのでしょうか。
私の過去のテクノロジースタックには主にJavaとPostgreSQLが含まれており、ORMとプレーンSQLの両方の経験があります。MongoDBのようなNoSQLデータベース管理システムは、一般的なRDBMSの優れた代替品ですか、それとも特殊なケースのアプリケーションデータストアですか?また、データベースの選択は、Scalaシステムの設計にどのように影響しますか(あるとしても)?たとえば、JSONのようなインターフェースを使用してデータベースと通信しているという事実、およびWebとRESTサービス間のJSONは、真ん中のすべてがScalaオブジェクトになる場合、それはそれほど意味がありませんか?
私は基本的に、特にScalaを使用して、リレーショナルデータベースからオブジェクト/ドキュメントタイプのデータベースに移行した経験を求めています。SLICKの次のリリースでは、RDBMSとの良好な統合が約束されていることを私は知っています。したがって、TypeSafeのような会社がRDBMS統合をTypeSafeスタックの一部にすることを決定した場合、たとえばCasbahを使用してMongoDBに統合することで、上流に泳ぎますか?
この質問が少し曖昧に見える場合はお詫び申し上げます。しかし、適切な洞察や経験を持った人が助けてくれることを願っています。
アップデート:
SLICKへのリンクを追加しなかったことをお詫びします(かなり新しいです)。ここに行きます:
アップデート2:
テクノロジーに対する私の個人的な最初の勝利は、通常、開発者の生産性です。これは、軽量でシンプルなことを意味します。習得が速く、保守が簡単で、魔法がありません。