問題タブ [nhibernate-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.
nhibernate - NHibernateを使用したクエリ
私はNHibernateを初めて使用し、データをクエリする方法を学ぼうとしています。
以下は構成xmlです。レシピのみが表示されます。
入力したキーワードからレシピタイトル、材料名から材料でレシピをクエリできるようにしたい。
たとえば、「パスタワイン」と入力します。
これは私が試したものですが、エラーが発生します。
コレクションも熱心にロードしたいです。
クエリを実行しますか?検索条件からクエリ文字列を作成できるようにする必要があります。これはSQLで私から簡単にわかります。
マルコム
nhibernate - NHibernate-Criteria APIを使用して整数列に対してLIKE検索を実行する最も簡単な方法は?
整数列に対して同様の検索を実行しようとしています。実行する必要があるのは、実際に列をvarcharにキャストしてから、同様の検索を実行することです。これは可能ですか?Criteria APIを使用してこれを行う最も簡単な方法は何ですか?
performance - NHibernate基準クエリとLINQからNHibernate
LINQ to NHibernateで表現できないクエリがあり、NHibernateCriteriaを使用できることを理解しています。しかし、パフォーマンスに関しては、NHibernateCriteriaを使用する方がLINQto NHibernateよりも一般的に優れていると想定しても安全ですか?
nhibernate - または基準のステートメント
ユーザーテーブルに接続されている注文のリストがあります。各注文には複数のユーザーを含めることができます。
次に、管理者が姓などを検索してすべての注文を検索できる検索領域を用意します。
たとえば、Smith を検索すると、smith という名前のユーザーのすべての注文が表示されるはずですが、NHibernate と Criterion を使用してこれを行うにはどうすればよいでしょうか?
私が最初に試した(ユーザーはユーザーのリストです):
crit.CreateCriteria("Users").Add(Restrictions.Like("LastName", Users))
しかし、成功しませんでした。
c# - NHibernate: 基準を使用して特定の「グループ化」クエリを表現する方法
質問:
次のクエリを生成できる基準/予測は何ですか?
(明らかに、これは の方が簡単ですがDISTINCT
、後でこれを修正するときにカウントが必要になります)。
私のアプローチ:
ここでの私の主な問題は、定数に関するものです。
私は得る
これはNHソースコードから明らかですが、役に立ちません。もしそうなら
それから私は得る
疑問符は未解決のパラメーターのようですが、その理由はわかりません。
詳細:
見つけたばかり
のタイプはgroupByString
非常に疑わしく見えます。
oracle - where句を使用せずにカスタム式を作成できますか?
前の質問でネイティブクエリを使用してこの問題をすでに解決しましたが。where句を使用せずにCriteriaで使用できるカスタム式を作成できるかどうか疑問に思っています。where句が不要な理由は、Oracle connect by ... start with ...
(ここ)のステートメントのためです。このページをたどって始めました。ただし、これにより次のようなコードが生成されますselect * from foo where connect by start with
...
これが私が使っているものです。何が生成されるかを見ると、where句を除いた正しいステートメントが生成されていると言えます。
こんな感じで使っています。
DetachedCriteriaからのものと関係があると感じていますが、.Add()
100%確実ではありません。残念ながら、カスタム式の作成に関するドキュメントがあまり見つからないようです。
編集:今、私はそれについて考えると、間違った木を吠えているように見えます。これは重要ではありませんが(私はすでにまともな実装をしています)。NHibernateをさらにカスタマイズする方法にまだ興味があります。
編集2:箱から出してすぐにNHibernateはOracle独自の機能をサポートしていないため、start with ... connect by
。NHibernateのネイティブサポートを追加して、NHibernateの拡張についてもっと学ぼうとしています。これらの関数をカスタム方言で登録できることは承知しています。しかし、他の基準クエリで使用できるように、基準として実装できるかどうか疑問に思っています。私が投稿したコードは正常に機能し、有効なSQLを正しく作成しますが、StartWithConnectByCriteriaを条件に追加すると、NHibernateはなどのクエリを発行しますselect this_.id from table where start with ... connect by
。その句はwhereに属していないため、これは無効なクエリです。
これは、NHibernateが生成することを期待するクエリです。
where
このクエリには句がないことに注意してください。ただし、start with ... connect by
それでも。で使用できますwhere clause
。これらのキーワードがどのように機能するかについて詳しくは、こちらをご覧ください。
nhibernate - NHibernate基準クエリを使用して、追加の条件に基づいて関連付けをロードするにはどうすればよいですか?
2つのプロパティを持つ猫がいるとしましょう。
- FavoriteKitten
- SecondFavoriteKitten
これらの子猫はランクによって区別されます。
猫を乗せるときは、ランクが「1」の子猫をFavoriteKittenにし、ランクが「2」の子猫をSecondFavoriteKittenにします。
基盤となるデータベースは次のようになります。
私のマッピングは次のようになります:
私の基準クエリは次のようになります
問題は、一度ロードされると、FavoriteKittenとSecondFavoriteKittenの両方が同じ子猫、つまりランクが「2」の子猫であるということです。
基準から外れたものはありますか?それとも私はこれを間違った方法で行っていますか?
nhibernate - プロパティ名に文字列を含まない NHibernate 制限を使用する
条件を作成するときに、プロパティに適用される制限を追加できます。制限を作成するには、次の 2 つの方法があります。
Restrictions.Eq(string propertyName, object value)
また
Restrictions.Eq(IProjection projection, object value)
つまり、プロパティ名を文字列として渡すのは苦手です。プロパティ名が変更された場合、プロジェクトは通常どおりコンパイルされ、名前の不一致は単体テスト中にのみ検出されるためです。私は TDD を実装しようとしていますが、すぐには実装されないので、ユニット テストの依存関係を制限してエラーをチェックしようとしています (TDD を採用できるようになるまで)。
何か案は?前もって感謝します!
nhibernate - NHibernate - このクエリの書き方: 親を選択し、条件に一致する親ごとに子を見つける
OK、まず私の単純なドメイン モデルは、1 対多の関係を持つ 2 つのクラスであり、単純な親 -> 子の関係です。「ツイート」には 1 つ以上の「投票」がありますが、各投票は 1 つのツイートにのみ属します。
すべてのツイートを選択する HQL、ICriteria、または NHibernate LINQ のいずれかでクエリを作成しようとしていますが、選択する 2 つの列も追加します。
- 投票数のカウントと...
- 特定の TwitterUserId に基づいて、特定のユーザーがそのツイートに投票したかどうか
2 つの列が追加されたので、Tweet ドメイン オブジェクトが返されるとは考えていません。おそらくレポート クエリを実行する必要がありますが、問題ありません。しかし、このクエリの書き方を理解するのに苦労しています。
これをストアド プロシージャとして記述する方法、または LINQ 2 SQL を使用する方法を知っています。それが役立つ場合は、これを LINQ to SQL クエリとして表現します。
これが LINQ 2 SQL で機能し、かなり効率的な T-SQL を生成することはわかっていますが、NHibernate でこれを記述する方法がわかりません。
更新: NHibernate v2 用に構築された NHibernate LINQ プロバイダーを使用して、NHibernate で上記の LINQ クエリを実行しようとしました。
しかし、うまくいきませんでした。Nhibernate 3.0 での LINQ サポートは改善されましたか? バージョン 3.0 はまだアルファ版なので使うのは少し気が進まないのですが、これでうまくいくならやってみようと思います。
更新 2: Diego Mijelshon の提案のおかげで、NHibernate 3.0 alpha 2 にアップグレードし、LINQ でクエリを作成しました。
c# - 切り離された基準を使用せずに、nhibernate のプロパティの数でクエリを実行するにはどうすればよいですか?
皆さん、NHibernate バージョン 2.1.2.4000 を使用しています。
実体
望ましい (疑似) クエリ
質問
NHibernate 基準 API を使用して上記のクエリを実行するにはどうすればよいですか?
理想的には、次のようなことができるようになりたいです (サブクエリなし、切り離された基準なし):
上記はどういうわけか可能ですか?
乾杯!