問題タブ [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 - Slickを使用してフィルターで結果をカウントする方法は?
私は単純化したい問題に直面しています:(確かに、私は実際にそれを間違っています)。
募集
id = 1のユーザーの数を数えたいと思います。SQL言語では、次のようになります。
コード
「リフト」形式でSlickを使用しているので、ユーザーをカウントするコードを次に示します。
実際にここで行われるのは、SlickエイリアスScalaQueryが実際にフィルターの原因を使用してサブクエリを作成し、サブリクエストの結果をカウントしていることです。
このようなクエリのオーバーヘッドはかなり大きいようです。
scala - scalaquery で自動インクリメント キーを取得する
scalaquery/slick を使用して 1:n の関係を表す 2 つのテーブルに行を挿入したいと考えています。
テーブルは次のように定義されます。
1 つのトランザクション内に 1:n の関係を挿入したいのですが、ScalaQuery を使用してそれを実現する方法がわかりません。JDBC 3 では、ステートメントから生成された ID を取得できますが、ScalaQuery API でステートメントが公開されている場所がわかりません。また、この情報に直接アクセスする方法もわかりません。
scala - ScalaQueryを使用して日付でクエリを制限するにはどうすればよいですか?
Scalaqueryを使用していますが、日付フィールドに基づいてクエリを制限しようとすると問題が発生します。私はScala2.9.2、ScalaQuery 2.9.1:0.10.0-M1を使用しています。以下のコードを検討してください。
このクエリは行を返しません。呼び出しコードは次のとおりです。
クエリは0行を返し、selectを出力すると次のSQLを生成します。
テスト日のデータがあります。SQLをSQLエディターに貼り付け、JDBCテンプレート形式( '27-Oct-2012')ではないように日付を編集すると、クエリは期待される行を返します。誰かが私が間違っていることを教えてもらえますか?これはうまくいかないのですか?
mysql - Scala Slick: 直接埋め込みを使用したクエリが機能しない
次のコードを使用して、mysql テーブルからアイテムを要求します (アカウント クラスは、データベース フィールドを表すケース クラスです)。
この線
次の例外をスローします。
その理由は何ですか?Scala 2.10.0-RC1 と Slick 0.11.2 を使用しています。
Account クラスは次のようになります。
scala - Slickのオプションフィールドの説明
Slick DSLでは、テーブルにオプションのフィールドを作成する2つの方法があります。
この場合のクラスの場合:
次のいずれかの方法でテーブルマッピングを作成できます。
と
2つの違いは何ですか?一方は古い方法で、もう一方は新しい方法ですか、それとも異なる目的を果たしますか?
一貫性が高いため、ID定義の一部としてIDをオプションとして定義する2番目の選択肢をお勧めします。
scala - 結合 SLICK に AND を追加する方法
SLICK でクエリを作成する際に問題があります。MySql データベースへのリクエストは次のとおりです。
SLICK を使用してどのように記述できますか? ドキュメントの結合に関する情報が本当に不足しています。
UPDATE 1 私はこのようなものでもすべての組み合わせを試しました
この場合、コンパイラはエラーを出しますwrong number of parameters; expected = 2
だから私は sv.parameter_id を _.parameter_id に置き換えました。
constructor cannot be instantiated to expected type; found : models.Join required: (models.Parameters.type, models.SensorValues.type)
SLICK の最新バージョンを使用していますが、非推奨です。手動でインポートしました
import scala.slick.lifted.Join
ONの代わりにWHEREを使用しているため、通常のinnerJoinのように見えます。
SQL で生成された購入クエリ:
select x2.id, x2.platform_id, x2.date, x3.x4, x3.x5, x3.x6, x7.x8, x7.x9, x7.x10, x7.x11 from (select x12.id as x4, x12.name as x5, x12.units as x6 from parameters x12) x3 left outer join (select x13.id as x8, x13.reading_id as x9, x13.parameter_id as x10, x13.value as x11 from sensorValues x13) x7 on x3.x4 = x7.x10, readings x2 where true and (x7.x9 = x2.id)
これでもON部にコンディションをプラスすればイイだろうな
しかし、これは決して起こりません。
代わりWHERE
に が必要AND
です。この状態に言及するために何を使用する必要がありますか、それともそのための機能はありませんか?
database - scalaquery のさまざまな開発/運用データベース
ScalaQuery では、(AFAIK) コードでプロバイダー固有のインポートを使用する必要があります。次に例を示します。
H2 を開発モードで使用し、MySQL を本番環境で使用しようとしています。これを達成する方法はありますか?
scala - 同じテーブルへの結合時に無効なSQLを生成するScalaquery
アカウントの最新の行を見つけるために、同じテーブルに左結合する必要があるクエリがあります。
これにより、次のSQLが生成されます
問題はSubscription t2 left join Subscription t2
. テーブルには、異なるエイリアスを指定する必要があります。
オブジェクトをコピーして貼り付けSubscriptions
、クエリを次のように変更することで、この問題を回避しました。
このクエリは有効な SQL を生成しますが、理想的とは言えません。
これを回避する方法はありますか?SLICK で修正された場合は、scala 2.10 にジャンプします。
scala - scalaquery で SQLite 用に生成された、サポートされていない length() 関数
スカラクエリを使用して SQLite データベースのテキスト列の長さを取得しようとすると、間違った SQL が生成されます。私はこれを得る:
クエリが実際にあるべきとき
このfor
クエリを取得するために使用するコンプは
そして、私が持っているテーブル定義は
scalaquery が間違ったlength()
関数を生成しているように見えますが、コードのどこでこれが発生したかを見つけることができず、インターネット上でこれについて何かを見つけたこともありません。
scala - これはどのように「タイプの不一致」ですか?
関連コード:
私も試しました
最終的な目標は、選択したすべての列を、タプルではなく、名前付きアクセサーを持つオブジェクトに変換することです。
アップデート:
問題の要点は次のとおりです(上記のコードから少し簡略化され、Intのみを使用することでString / java.lang.Stringの「混乱」を排除します)。