問題タブ [query-by-example]
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.
nhibernate - NHibernate の例によるクエリ機能に関する適切なドキュメントはありますか?
私は、例によるクエリができることとできないことを正確に述べている優れたドキュメントを見つけようとしています。
特に、例によるクエリが次のような検索をサポートしているかどうかを知りたい: 特定の名前の場所を持つすべての人を取得したい。
よろしく、
オリバー・ハナッピ
java - iBATIS で Query By Example を実行する簡単な方法はありますか?
これが最新のリリースに組み込まれていることを願っていましたが、そうであれば、単純な Google 検索でドキュメントを見つけることができません。それができない場合は、単純なライブラリを使用したいと思いますが、チュートリアルで解決します。
ありがとう。
.net - NHibernate - 例によるクエリ - サブクエリ
NHibernate で次のことを達成する方法がたくさんあることは知っています。他のシナリオには興味がありません。私が疑問に思っているのは、多対 1 の関係と NHibernate の例によるクエリを使用してサブクエリを自動的に生成できるかどうかです。
私のセットアップは次のとおりです。
私のマッピングは次のようになります。
単純な QBE は、FirstName および/または LastName に値を与え、その名または姓を持つ Customers を含む IList を返します。
私がやりたいことは、CustomerOrders リストに注文を追加して、次のようなクエリを作成することです。
上記の例では、OrderName と OrderNumber は Order クラスのプロパティです (簡潔にするために、このクラスは含めていません)。これが可能かどうか誰にもわかりますか?質問を明確にする必要がある場合はお知らせください。基本的に、プリミティブ値を入力して QBE に含めることができます。コレクションでも同じことができますか?
java - HibernateTemplatefindByExampleは結果を返しません
Hibernate QBE(実際にはSpringのHibernateTemplate.findByExample())を使用して、ユーザー名でユーザーのリストを返そうとしています。「既知の良好な」値を使用して検索します(ユーザー名「JOHN.SMITH」はデータベースに存在します)。
残念ながら、結果は返されません。以下は単体テストです。
queryByExample()メソッドは、汎用DAOで定義されています。
QBEが機能するために必要な特別な構成はありますか?
mysql - 例による MYSQL クエリ (QBE)
私は本当にこれを理解していません
QBE
意味..検索しましたが、この用語を理解できません..
私のクライアントはする必要があります
QBE を使用してレポートを生成する
私の知る限り、これはREGEXP検索ですが、明確ではありません。
誰でもこれを理解するためのより良い例を持っていますか..私と共有してくださいありがとう!
c# - 特定のプロパティのみを含むNHibernate QueryByExample
コンストラクターで配列を受け入れて、どのプロパティを検索に含める必要があるかを示すカスタム プロパティ セレクターを作成しました。コンポーネントの種類がない限り、このアプローチはうまく機能しますが、それらをどのように処理すればよいでしょうか? 次に例を示します。
名前で検索できるようにしたいのですが、姓である必要はありません。ただし、プロパティ名は Name であるため、姓と名の両方が同じプロパティの一部であるように見えます。また、通常は条件として機能する Name.Firstname のようなものは、ここでは機能しないようです。それを回避する最善の方法は何ですか?
例:
db に 2 人の顧客がいて、「Owen」という名前の顧客は 1 人だけですが、どちらもisPreferred = false
. 標準の QBE は、プロパティに基づいて両方を返しisPreferred
ます。
解決:
答えてくれてありがとう、解決策はほとんどtherealmitchconnorsによる答えに基づいていますが、Mark Perryの答えなしではできませんでした。
秘訣は、プロパティを含めるのではなく、Name.FirstName
実際には除外したいということを理解することでしたName.LastName
。QBE ではプロパティを除外することしかできないためです。プロパティの完全修飾名を決定するのに役立つように、therealmitchconnors の回答から適応した方法を使用しました。作業コードは次のとおりです。
プロパティがコンポーネント クラスであるかどうかを判断する最善の方法がわかりませんでした。コードを改善する方法についての提案は大歓迎です。
java - Hibernate QBE クエリを保護する方法
今のところ、私は hibernate で 4 種類のトランザクションを行うことを知っています。
- オブジェクトの使用
- HQL の使用
- DB 固有の SQL の使用
- 基準の使用 (QBE)
さて、注射に対する彼らの強さに関しては、次のように思います(間違っていたら訂正してください):
- 内部 SQL 呼び出しがパラメーター化されているため、安全です。
- クエリがパラメーター化されている場合は安全であり、それ以外の場合は安全ではありません。
- #2と同じですが、ポータブルではありません。
- 安全でない?
私の質問は #4 の Query by Example についてです。これも脆弱であることがわかったからです。例:
このスニペットは、accounts テーブル全体を選択します。注射を防ぐ方法はありますか?どのように?
注: Hibernate 3.6.5 final を使用しています。テスト データベースは HSQLDB です。
更新: 私にもバグのように思えますが、実際には注入された SQL とは関係がない可能性があります。ID に存在しない値を設定しようとしましたが、すべての行が返されます。'1'='1' の代わりに '5'='5' を使用して注入を試みましたが、5 は SQL 呼び出しに伝搬されません。(1=1) を where 句として使用し続けます。
更新 2: 解決済み。以下の回答を参照してください。
nhibernate - LikesとEqualsをNHibernateQuery-By-Exampleと混合しますか?
私はかなり大規模なSOAソリューションを持っており、新しく追加されたサービスはNHibernateのQueryByExampleを使用して約980万レコードをクエリします。これまでのところ、パフォーマンスはひどいものであり、データベースのプロファイルはクエリを次のように示しています。
つまり、基本的に私のコードは次のようになります。
NHibはどこでもlike演算子を使用していますが、これは私が設定した方法であるためです。しかし、いくつかのフィールドを同じように設定し、いくつかを等しく設定することは可能ですか?Zip5をEQUALにし、stateをEQUALにする必要があります...しかし、残りはLIKEにすることができます。
それとも、QBEを台無しにしたので、通常の古い基準を使用したほうがよいでしょうか?
java - Hibernate: 1 対多の関係を含む Query By Example
最近、Criteria API のサンプル コンポーネントによるクエリを使い始めたところ、奇妙な問題に遭遇しました。検索を実行しようとすると、org.hibernate.QueryException がスローされます。
私のシナリオは次のとおりです。
クラス A があり、そのプロパティの 1 つとして、クラス B のインスタンスのセット (Set< B> listOfBs) があります。これは、A では 1 対多の関係としてマップされます。
B のサンプル インスタンスに基準クエリを設定することを望んでいました。これは私が使用している(または望んでいる)コードです:
私は XML マッピングを使用しており、A は次のように B との関係をマッピングしています (A.hbm.xml):
これは正しいアプローチではない可能性があることを認識しています。より良い提案があれば大歓迎です。いずれにせよ、問題は、例外が発生することです。
org.hibernate.QueryException: プロパティを解決できませんでした: _com of: B
私は検索して、例外が私に何を伝えているのかを理解しました。しかし、私のクラスのいずれにもそのようなプロパティ名が宣言されていません。これは、永続性を透過的に見せるために Hibernate が内部で使用するインストルメンテーションの一部であると思われます。
これが既知の問題なのか、人々が使用した回避策があるのか 、それとも新しいバージョンで解決されているのか知りたいです。休止状態 3.6.6 を使用しています。
アドバイス/経験をいただければ幸いです。
ありがとう!
c# - NHibernate Criteria QueryByExample が途中で SQL でスタックする
私は Criteria を使用してクエリを高速化しています。
例によるクエリを使用してテーブル内の行を照合し、同じ ID を持つ重複する行を削除してから、ページ分割します。
もちろん、重複した行を削除するまでページネーションを行うことはできません。その方法もわかりません。これは SQL で実行できますが、それは流暢なコードに適合します。ISQLQuery は ICriteria オブジェクトを返しません。
私が読んだアドバイスは、SQLクエリをNHibernateで書くことですが、気の利いた「ROW_NUMBER() over partition SQL」を変換する方法がわかりません。最初にエンドツーエンドで動作させてから、よりエレガントにしたいと思います。
このスパイクを本番環境に導入して、最大 90% の速度向上を証明したいと考えています。