2011-06-22 14 views
1

nhibernateのスクリーンキャストの夏を終え、それを知識のために流暢に変換しようとしています。Fluent Hibernate Mappingヒッチ - サブクラスの間違ったカラム名を渡す

私は2つのクラス(非常に単純な)

public class Customer { ... } 
public class PreferredCustomer : Customer { ... } 

これらはtable per sub class戦略に従うので、流暢なマッピングがそうである:それザッツ

CustomerMap - 
    //nothing related to PreferredCustomer - the spec says not required 
public class PreferredCustomerMap : SubclassMap<PreferredCustomer> 
{ 
    Map(x => x.CustomerSince); 
    Map(x => x.OrderDiscountRate); 
} 

を。

SELECT customer0_.CustomerId as CustomerId1_0_, 
    customer0_.Version as Version1_0_, 
    customer0_.Firstname as Firstname1_0_, 
    customer0_.Lastname as Lastname1_0_, 
    customer0_1_.CustomerSince as Customer2_2_0_, 
    customer0_1_.OrderDiscountRate as OrderDis3_2_0_, 
     //here, customer0_1_.customer_id needs to be CustomerID really. 
    case when customer0_1_.Customer_id is not null then 1 when customer0_.CustomerId is not null then 0 end as clazz_0_ 
    FROM [Customer] customer0_ left outer join [PreferredCustomer] customer0_1_ on customer0_.CustomerId=customer0_1_.Customerid 
    WHERE customer0_.Customer_Id=1 

そのは明らかにのみPreferredCustomer上のテーブルに参加したことをやって: 私のテストでは、検査時に、カントはこれが休止状態で生成SQLで列customer_id

を見つけるSQLその文句を失敗しています。何が必要なのかを見つけ出す。

お願いします。

編集:どのように私は流暢に生産されたXMLを読むのですか?それは良いスタートになる可能性があります。

答えて

2

SubclassMapsにKeyColumn("CustomerID");を呼び出す必要があります。

+0

私は設定ファイルを見て、それを理解しました!私の質問を編集してあなたの答えを見たのです。私はこれがwikiの ''最初のプロジェクト ''ページに言及されるべきだと思います。ありがとう – iamserious

関連する問題