問題タブ [criteria]

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 投票する
4 に答える
19393 参照

java - Hibernate クライテリア API クエリに「オプティマイザー ヒント」を挿入する方法

条件APIを使用して動的にまとめられる休止状態のクエリがあります。そのまま実行すると、耐えられないほど遅いクエリが生成されます。

しかし、クエリの先頭に /*+ FIRST_ROWS(10) */ を追加すると、約 1000% 高速になることに気付きました。基準APIでこれを行うにはどうすればよいですか?

私は criteria.setComment(..) を試しましたが、これは無視されているようです。

休止状態のドキュメントでは、3.4.1.7。クエリ ヒントが記載されていますが、「これらは SQL クエリ ヒントではないことに注意してください」と明確に記載されています。

クエリの結果はページ分割されるため、99% のケースで結果 1 ~ 10 が表示されます。

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

database - 多基準検索アルゴリズム

問題は次のとおりです。技術製品を含む巨大な (私のレベルでは) mysql データベースがあります。データベースに 15 万行の製品と、同じ数の行を持つ 10 ~ 20 の他のテーブルがあります。各テーブルには多くの基準が含まれています。基準には、テキスト値、10 進数、単なるブール値などがあります。このデータベースへの Web アクセス (php) に各基準のフィルターを提供したいのですが、それを本当に速く行う方法がわかりません。複数の結合を避けるために、すべての列をマージして大きなテーブルを作成し始めました。これはクールで、大きな結合よりも高速ですが、それでも非常に遅いです。すべての基準にインデックスを付けても、状況は改善されません (そして、それは悪い考えだと聞きました)。複数条件検索の前処理に役立つクールなアルゴリズムがいくつかあるのではないかと考えていました。何か案が ?

ありがとうございます。

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

nhibernate - NHibernate:テーブル上のすべてのクエリに適用される基準を作成します

Castle ActiveRecord / NHibernateの使用:テーブル上のすべてのクエリにICriterionを強制する方法はありますか?

たとえば、かなりの量のテーブルに「UserId」列があります。ログインしたユーザーの行を常に選択していることを確認したい場合があります。ICriterionオブジェクトは簡単に作成できますが、FindAll()、FindFirst()、FindLast()などのさまざまなメソッドに提供する必要があります。

Castle ActiveRecordへのすべてのクエリにWHERE句を強制する方法はありますか?

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

nhibernate - NHibernate 2.1: エイリアスを使用したサブクエリでの LEFT JOIN (ICriteria)

私は基本的に、NHibernate ICriteria インターフェイスを使用してこのクエリを作成しようとしています。

SomeTable 1:n AnotherTable

SomeTableには列があります: PrimaryKey、NonAggregateColumn
AnotherTableには列があります: PrimaryKey、ForeignKey、AnotherNonAggregate、YetAnotherNonAggregate

SQL はテーブルを 2 回スキャンする必要があるため (集計ごとに 1 つの射影サブクエリ)、射影サブクエリの使用があまり効率的でないことは明らかです。

複数の GROUP BY を使用することも効率的ではありません。

これに対する解決策はありますか?これまでのところ、生の SQL を使用することに頼ってきましたが、これは複雑なレポートでは扱いにくくなっています。

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

asp.net - クライテリア構築ニバネート

誰かが nhibernate の基準の例を手伝ってくれるかどうか疑問に思っていました。フィールドが特定の値に一致する特定のテーブル内のレコードを見つけるなど、かなり基本的なことについて頭を悩ませていると思います。現在つまずいているのは、別のテーブルの外部キーを持つテーブルがある場所です。 2 番目のテーブルのフィールドに基づいて、最初のテーブルから行を検索しようとしています。

例として...

私が持っている場合

特定の名前を持つ会社に属するすべてのユーザーを取得する基準を作成するにはどうすればよいですか? 適切なマッピング ファイル/オブジェクトを作成する方法は理解していると思いますが、基準を初期オブジェクトのサブプロパティに対して表示する方法がわかりません。

どんな例でも素晴らしいでしょう。

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

asp.net - 条件付きで基準を作成する

次のようなユーザー テーブルと国テーブルがあるとします。

マッピングなどをそれぞれに適切に整理します。

List EligibleCountries のようなものがある場合、国のリストからすべてのユーザーを取得するクエリを作成するにはどうすればよいでしょうか?

何かのようなもの:

ユーザーが 1 か国だけにいて、すべての国にいるかどうかを確認するため、機能しません...

Restrictions.In を使用してみましたが、思いどおりに動作しないようです。

対象国のリストにある国のいずれかにいる限り、ユーザーを取得するようにするにはどうすればよいですか?

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

nhibernate - 子コレクション プロパティを持つオブジェクトの Hibernate クエリ

nhibernate クエリのヘルプが必要です。可能であれば Criteria API を使用したいと思いますが、それ以外の場合は HQL で問題ありません。

Account オブジェクト プロパティを持つ Employee オブジェクトがあり、Account には Entry オブジェクトのコレクションがあり、各 Entry には Amount プロパティがあります。

Entry.Amount の合計がゼロ未満のアカウントを持つすべての従業員を返すクエリが必要です。

何か案は?

0 投票する
5 に答える
9908 参照

php - Propel Criteria を SQL にコンパイルする方法

Propel Criteria をコンパイルして SQL をクリアするにはどうすればよいですか? $criteria->toString(); を試しました。しかし、これは私が期待したものではありません。また、ModelPeer::doSelectStmt($criteria) を試しましたが、生の SQL が返されました (パラメーターの置換が必要です)。

0 投票する
5 に答える
2127 参照

oop - この場合、instanceofをどのように置き換えることができますか?

私はcompareCriteriaを比較しようとしています。'between'と'inArray'または'greaterThan'のような単純なもの。これらのクラスにはポリモーフィズムを使用します。compareCriteriaインターフェースから共有する1つのメソッドは、「matchCompareCriteria」です。

私が避けようとしているのは、各クラスに、照合する必要のあるcompareCriteriaのタイプをチェックさせることです。たとえば、inArrayオブジェクトは、matchCompareCriteriaがinArrayオブジェクトに渡されたかどうかをチェックします。渡されなかった場合は、比較方法がわかっている場合はfalseを返します。

この場合、instanceofは完全に正当である可能性があります(オブジェクトは自分自身について知っています)が、それでも私はそれを回避するための可能な方法を探しています。何か案は?

擬似コードの例:

XとYがZより大きい場合、trueを返します。

編集:

1)instanceofは、今のところ、matchCompareCriteriaメソッドで必要に応じて表示されるものです。私はそれを取り除きたいです

2)matchCompareCriteraは、compareCriteriaが別のCriteriaに含まれているかどうかを確認します。一方の可能なすべての値がもう一方に含まれている場合、trueを返します。compareCriteriaの多くの組み合わせでは、それらを比較しても意味がないため、falseが返されます(betweenAlfaとbetweenNumは互換性がありません)。