問題タブ [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.
c# - discriminator-value に射影を作成する
私はこのNHibernateマッピングを持っています
では、ParentClass オブジェクトをフィルタリングするときに、DAO の他のプロパティと同様に、discriminator-value の Projection を取得するにはどうすればよいでしょうか? DAO のコード:
nhibernate - ネストされたプロパティへのエイリアスを持つ Nibernate プロジェクション
次のような DTO クラスがあります。
そして、私はこのような投影リストを持っています:
クエリを次のように変換しますquery.Select(projections.ToArray()).TransformUsing(Transformers.AliasToBean<Aggregates>();
実行時に TransformUsing() は例外をスローします。
これは、NHibernate がメンバー式からプロパティの名前を選択するため (主要なメンバー アクセスなしで)、当然のことです。では、プロパティ Aggregates クラスのプロパティを埋めるプロジェクションを設定するにはどうすればよいでしょうか?
sql - 子コレクションの数に基づく Nhibernate queryover フィルター
最終的には、子が 2 つ未満のすべての親オブジェクトをフィルター処理したいと考えています。
クエリを作成する方法の例として、次のロジックを使用するグリッド ダッシュボードを使用して検索画面を作成しています。
これは、この時点まで素晴らしく機能しています。
.Count が機能しないことは理にかなっていますが、これは実際には linq ではありません。また、 .Count() はエラーをスローします。正直なところ、Restritions、JoinAlias など、思いつく限りのすべての組み合わせを試したような気がしますが、知識に基づいた試みの道を外れ、ずっと前に野生の推測の領域に入り込んでしまいました。
QueryOver 構文で子の数に基づいて親を除外するようにクエリを設定するにはどうすればよいですか?
-----注 ----- id がリストを取得した後に linq を使用することについて議論しましたが、クエリのセットアップでページングを行っているため、ページが戻った後にフィルターが適用されます。
c# - ヘルパー クラスを使用した NHibernate LINQ プロジェクション
NHibernate LINQ クエリに射影を ( 経由で) 追加しようとして.select()
いますが、ロジックが少しあるため、射影されたモデルを直接返すのではなく、ヘルパー クラスを使用したいと考えています。
私のコードは次のようになります(短縮):
_messageModelHelper
は、オブジェクトを に変換するオブジェクトであり、関連するエンティティにすべて依存するため、さまざまなシナリオを処理するロジックが含まれていますMessageInstance
。MessageModel
これはエラーで失敗します:
フィールド Dal.Repositories.MessageRepository._messageModelHelper' はタイプ 'NHibernate.Linq.NhQueryable`1 [Domain.Entities.Message]' に対して定義されていません
フィールド(DIに必要)の使用を避け、これを行う場合:
私は単にSystem.NotSupportedException
.
私のアプローチはうまくいかないようです。new MessageModel
直接戻る必要を回避しながら、何ができますか? また、投影を維持する必要があり、列挙可能なものを操作することはできません。
java - 複数の重複オブジェクトを返す 1 対多の休止状態
1 対多の関係エンティティがあります シナリオはこのようなものです EmployeeGroupActivity には多くの EmployeeActivity があります Hibernate マッピングは次のように行われます
where句を使用してEmployeeGroupActivityをフェッチすると、多くのEmployeeActivityオブジェクトを持つイベントに対して1つのEmployeeGroupActivityが期待されます。
しかし、同じ groupActivityId を持つ多くの EmployeeGroupActivity オブジェクトとして結果を取得していますが、各オブジェクトには EmployeeActivity のセットに 1 つの EmployeeActivity オブジェクトがあります。
これは、休止状態の基準でプロジェクションを使用する場合にのみ発生します。プロジェクションを使用しない場合、多くの EmployeeActivity オブジェクトを持つ 1 つの EmployeeGroupActivity オブジェクトを取得します。
基準にsetResultTransformerを使用してhttp://stackoverflow.com/questions/20331852/java-hibernate-transformer-aliastobeannestedresulttransformer
おり、SOの一部によって投稿されたライブラリを使用しています
予測を使用して従業員活動のセットを取得するには? 私はそのような多くの要件を持っており、結果を反復し、1 つのルート オブジェクトにすべてのセット アイテムを追加し、多くの反復を必要とする応答を返さなければならないすべての場所があります。
更新: DISTINCT_ROOT_ENTITY が機能しなかったことに注意してください
java - Hibernate のプリミティブ データ型要素を含むリストに where 句を適用してデータをフェッチする
共有ベローのような休止状態のマッピングがあります
ご覧のとおり、EMPLOYEE と REF_NUMBERS の 2 つのテーブルがあります。EMPLOYEE テーブルには POJO がありますが、REF_NUMBERS は単なるマッピング テーブルです。今、私が持っている参照番号のリストに基づいて従業員名を取得したいと思います。従業員名と対応する参照番号だけの完全な Employee オブジェクトは必要ありません。これを書くにはどうすればよいHQL
ですか?で達成する方法はありますProjection
か?