問題タブ [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.

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

nhibernate - 結合に投影を追加する

このコードにプロジェクションを追加するにはどうすればよいですか? 作成日または最終更新日に従って結果を並べ替えようとしています。

//このプロジェクションの追加エラー:

Conjuctionタスクの取得を処理する別のメソッドに渡します。var tasks = GetCollaboratedTasks(c);

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

grails - gorm プロジェクションとメタ情報の損失

プロパティで射影を使用すると、結果は、射影ブロックで定義された順序と同じ順序で要素を含むリストとして返されます。同時に、プロパティ名がリストにないため、結果が渡され、呼び出し元はどの値がどのプロパティに属しているかを知る必要があるため、開発者にとっては非常に不利です。プロパティ名を値のキーとして基準クエリからマップを返す方法はありますか?

したがって、次のコード:

これは以下を返します:

代わりに、次のように返します。

結果を取得した後にこのように調整できることはわかっていますが、単純なリストではなく、SQL クエリの結果を模倣するマップのリストを返すために、プロパティ エイリアスを条件で使用する必要があると強く感じています。

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

nhibernate - nHibernateプロジェクション-ページングと明確

私が解決しようとしている高レベルの問題は、子コレクションに存在する可能性のあるものを検索するときの重複解除されたページングです。

私が採用しているアプローチは、DTOに関連する情報を含む個別のプロジェクションを作成することです。また、これらの値は各行間で変化しないことも知っています。

この問題は、ページング/順序付け要素を導入するときに発生します。

NH Profilerを見ると、次のようなSQLが表示されています。-

ROW_NUMBER()によってすべての行が一意になるため、DISTINCTプロジェクションを取得するという私の意図は妨げられています。

私が経験しているのと同じ問題を説明しているこのブログ投稿に出くわしました。

http://www.daczkowski.net/2010/09/07/rows-duplication-for-certain-nhibernate-queries-%E2%80%93-workaround/

そこで提供されたソリューションには、nHibernateMSSQLコードの変更が含まれていました。これはオプションですが、避けたいと思っています。この問題を回避するオプションがnHibernateのより最近のバージョンにありますか?

編集

nHibernate3.3.1で修正されました-以下の回答を参照してください。

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

nhibernate - NHibernate で DTO を保存するには?

私がしたいこと:

  1. プロジェクションを使用して DTO を取得する
  2. UI で、この DTO オブジェクトを編集します
  3. 変更されたオブジェクトを保存

DTO オブジェクトを保存するにはどうすればよいですか? ドメインを再クエリして dto にマージする必要がありますか? 保存用の投影を指定する可能性はありますか?

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

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」ファイルを複製することもできますが、それは悪い習慣のようです。

前もって感謝します

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

nhibernate - ICriteria プロジェクションを使用してネストされたオブジェクトを取得する方法

次のようなデータモデルがあります。

データベースからデータを取得するには、次のようにします。

しかし、NHibernate は、hands プロパティにネストされたオブジェクトをロードしません。null を与えるだけです。ネストされたオブジェクトを埋める方法も教えてください(複数のレベルの深さ)。クエリの代わりにプロジェクションを使用する方が良いでしょう。注: プロジェクションなしでデータをロードすると、うまく機能したため、マッピングでは問題になりません。

0 投票する
3 に答える
2825 参照

nhibernate - NHibernate: 子エンティティを親プロパティに射影すると例外がスローされる

次の親エンティティ Department があり、これには子エンティティ Sections のコレクションが含まれています

次のDTOに変換(フラット化)したい

次のコードを使用します。

ただし、次の例外が発生します:プロパティを解決できませんでした: Department.Name of: Domain.Section

次のLINQ式も試しました

マッピング

しかし、これはメソッドまたは操作が実装されていないことをスローします。

私が間違っていることや欠けていることについてのガイダンスを求めています。

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

nhibernate - NHibernate プロジェクション: AliasToBean プロジェクションを作成するには?

この非効率的なクエリを、dto に射影するクエリに変換しようとしています。元のクエリは次のようになります。

私はこのように試しました:

変数「x」がスコープ内で参照されていますが、定義されていないというエラーが表示されます。これを変換する適切な構文は何ですか?

Andrew の助けを借りて、動作する正しいバージョンを以下に示します。

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

nhibernate - ニバネート プロジェクションを追加

Employee: BaseEntityクラスを持っています

およびBaseEntityクラス:

このようにエンティティをマップして /create select を作成するにはどうすればよいですか

私はこのように試しました:

私は混乱しています.Projections.GroupPropertyに結合テーブルエイリアスを使用する必要がありますか?