問題タブ [nhibernate-projections]
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 - 結合に投影を追加する
このコードにプロジェクションを追加するにはどうすればよいですか? 作成日または最終更新日に従って結果を並べ替えようとしています。
//このプロジェクションの追加エラー:
Conjuction
タスクの取得を処理する別のメソッドに渡します。var tasks = GetCollaboratedTasks(c);
grails - gorm プロジェクションとメタ情報の損失
プロパティで射影を使用すると、結果は、射影ブロックで定義された順序と同じ順序で要素を含むリストとして返されます。同時に、プロパティ名がリストにないため、結果が渡され、呼び出し元はどの値がどのプロパティに属しているかを知る必要があるため、開発者にとっては非常に不利です。プロパティ名を値のキーとして基準クエリからマップを返す方法はありますか?
したがって、次のコード:
これは以下を返します:
代わりに、次のように返します。
結果を取得した後にこのように調整できることはわかっていますが、単純なリストではなく、SQL クエリの結果を模倣するマップのリストを返すために、プロパティ エイリアスを条件で使用する必要があると強く感じています。
nhibernate - nHibernateプロジェクション-ページングと明確
私が解決しようとしている高レベルの問題は、子コレクションに存在する可能性のあるものを検索するときの重複解除されたページングです。
私が採用しているアプローチは、DTOに関連する情報を含む個別のプロジェクションを作成することです。また、これらの値は各行間で変化しないことも知っています。
この問題は、ページング/順序付け要素を導入するときに発生します。
NH Profilerを見ると、次のようなSQLが表示されています。-
ROW_NUMBER()によってすべての行が一意になるため、DISTINCTプロジェクションを取得するという私の意図は妨げられています。
私が経験しているのと同じ問題を説明しているこのブログ投稿に出くわしました。
そこで提供されたソリューションには、nHibernateMSSQLコードの変更が含まれていました。これはオプションですが、避けたいと思っています。この問題を回避するオプションがnHibernateのより最近のバージョンにありますか?
編集
nHibernate3.3.1で修正されました-以下の回答を参照してください。
nhibernate - NHibernate で DTO を保存するには?
私がしたいこと:
- プロジェクションを使用して DTO を取得する
- UI で、この DTO オブジェクトを編集します
- 変更されたオブジェクトを保存
DTO オブジェクトを保存するにはどうすればよいですか? ドメインを再クエリして dto にマージする必要がありますか? 保存用の投影を指定する可能性はありますか?
c# - 投影でのNHibernateインターセプターの使用
私はこの状況にあります:
Nhibernateを使用して、SQLの大きなテーブルにマップされるエンティティ' User 'をマップしています。パフォーマンス上の理由から、プロパティのセットが少なく、hbmにマップされない軽量エンティティ'LightweightUser'を作成しました。ファイルなど、「 LightweightUser」エンティティをワイヤリングするためにNhibernateProjectionテクニックを使用しています。両方のエンティティは、Idプロパティを含む単純なクラス「Entity」から派生しています。
上記の実装は正常に機能し、SQLクエリは小さく==高速です。
しかし、私のNhibernate SessionFactoryには、NhibernateIntercerptorも注入しました。インターセプターのOnLoadメソッドは、NHibernate Daoから「User」エンティティを取得しているときに呼び出されますが、NHibernate Daoから「LightweightUser」エンティティを取得すると、インターセプターはトリガーされません(OnLoadメソッド)。
これはおそらく、NHibernateSessionFactoryが私の「LightweightUser」エンティティを認識していないという事実に関連しています。私の「軽量」エンティティの存在をSessionfactory/Interceptorに通知する方法はありますか?または、プロジェクションをインターセプターに配線する他のテクニックはありますか?はい、Lightweightエンティティの「hbm」ファイルを複製することもできますが、それは悪い習慣のようです。
前もって感謝します
nhibernate - ICriteria プロジェクションを使用してネストされたオブジェクトを取得する方法
次のようなデータモデルがあります。
データベースからデータを取得するには、次のようにします。
しかし、NHibernate は、hands プロパティにネストされたオブジェクトをロードしません。null を与えるだけです。ネストされたオブジェクトを埋める方法も教えてください(複数のレベルの深さ)。クエリの代わりにプロジェクションを使用する方が良いでしょう。注: プロジェクションなしでデータをロードすると、うまく機能したため、マッピングでは問題になりません。
nhibernate - NHibernate: 子エンティティを親プロパティに射影すると例外がスローされる
次の親エンティティ Department があり、これには子エンティティ Sections のコレクションが含まれています
次のDTOに変換(フラット化)したい
次のコードを使用します。
ただし、次の例外が発生します:プロパティを解決できませんでした: Department.Name of: Domain.Section
次のLINQ式も試しました
マッピング
しかし、これはメソッドまたは操作が実装されていないことをスローします。
私が間違っていることや欠けていることについてのガイダンスを求めています。
nhibernate - NHibernate プロジェクション: AliasToBean プロジェクションを作成するには?
この非効率的なクエリを、dto に射影するクエリに変換しようとしています。元のクエリは次のようになります。
私はこのように試しました:
変数「x」がスコープ内で参照されていますが、定義されていないというエラーが表示されます。これを変換する適切な構文は何ですか?
Andrew の助けを借りて、動作する正しいバージョンを以下に示します。
nhibernate - ニバネート プロジェクションを追加
Employee: BaseEntity
クラスを持っています
およびBaseEntity
クラス:
このようにエンティティをマップして /create select を作成するにはどうすればよいですか
私はこのように試しました:
私は混乱しています.Projections.GroupPropertyに結合テーブルエイリアスを使用する必要がありますか?