以外の列に主従に参加する次のマッピングエントリを仮定する:NHibernateの内側には、ID
<クラス名= "顧客" テーブルは= "顧客">
<id name="InternalId" column="uintCustomerId" type="long">
<generator class="identity" />
</id>
<!-- The BinaryBlob below is a 16 byte array - Think Guid.NewGuid().ToByteArray -->
<property name="CustomerUid" column="uidCustomerId" type="BinaryBlob" not-null="true" />
<property name="Name" column="strFullName" type="String" not-null="true" />
<property name="Age" column="intAge" type="System.Int32" not-null="true" />
<set name="Orders" table="order" generic="true" inverse="false" lazy="false" cascade="all">
<key column="uidCustomerId" />
<one-to-many class="Order" />
</set>
<クラス名= "注文"テーブル= "注文">
<id name="InternalId" column="uintOrderId" type="long">
<generator class="identity" />
</id>
<!-- This BinaryBlob is a 16 byte array - Think Guid.NewGuid().ToByteArray -->
<property name="CustomerUid" column="uidCustomerId" type="BinaryBlob" not-null="true" />
<property name="OrderDate" column="datOrderDate" type="System.DateTime" not-null="true" />
したがって、2クラス:顧客 - 上記のマッピングで定義されているような特性を持つ注文
カスタマーPKが注文PKがuintOrderId
uidCustomerIdは、Customerテーブルに一意のキーと上の顧客へのFKであるuintCustomerId
です注文テーブル uidCustomerIdはバイナリ(16)
データベースは変更できません。
上記を考慮すると、 NHibernate Criteria APIを使用してクエリを実行すると、顧客とその関連注文を特定の日付以降に持ち出すことができます。注:主キーではないuidCustomerIdに参加する必要があります。
これはCriteria APIで行うことができますか? これはHQLで行うことができるものですか?
おかげで、 Tasos
のために良いの参照です。既にマッピングがある場合は、単純なCustomer.Ordersプロパティを使用して注文を参照するよりも、通常のようにCustomerを取得するだけです。 –
ご意見ありがとうございますMufasa 特定のDateの後にOrdersを使用して顧客を希望された場合、どのようにクエリを実行しますか? – Anastasiosyal