同時に効果的に結合および制限する NHibernate 基準を作成しようとしています。私のDBは次のようになります...
Cases ---> CustomerProducts <--- Customers Cases ---> CaseStatuses
各ケースは顧客の製品に関連付けられています (1 つの製品に多くのケース)。
各顧客には多数の顧客製品があります (1 人の顧客には多数の顧客製品があります)。
各ケースには、さらにケース ステータスがあります (1 つのケース ステータスから複数のケース)。
これは XML ファイルでマッピングされており、ケースと顧客の間 (顧客製品を介した) の多対多の解決は、CustomerProduct エンティティにセットがあることを意味する CustomerProduct マッピングの Sets<> で解決されています。
お客様
ケース
次に、「ケース」と入力された条件を作成します。私が適用する必要がある基準は....
Statuses IN [さまざまなステータス コード]。これは....で達成されました。
criteria.Add(Restrictions.In("CaseStatus.CaseStatusId", statuses));
ここで、特定の顧客 ID のケースのみを選択する必要があります。私が試してみました...
criteria.Add("CustomerProduct.Customer.CustomerId", customerId);
これは機能せず、NHibernate は、CustomerProduct.Customer.CustomerId へのマッピングを解決できないと通知します。
Case には CustomerProduct オブジェクトのプロパティがあります。
CustomerProduct には Customer オブジェクトのプロパティがあります。
Customer には CustomerId のプロパティがあります。
それがうまくいかない理由はありますか?
ありがとう。