2011-09-14 12 views
0

I持って、次のクラスへのマッピング: クラス帳:が参加しました実体を参照する

Table("BOOKS") 
Id(b => b.Id) 
Join("BOOKS_EXTRA_INFO", j => 
    { 
     j.Optional(); 
     j.References(b => b.Author); 
    } 

クラス著者:

TABLE("AUTHORES") 
Id(a => a.Id) 
HasMany(a => a.Books).Table("BOOKS_EXTRA_INFO") 

このマッピングの問題点次のことを実行しようとするときです:

var a = Session.Get<Author>(1); 

書籍コレクションは空です。私は、NHが生成するSQLをチェックし、問題がWHERE句である:

Select ... WHERE BOOKS.AUTHOR_ID = 1 

正しい句があるべき場所:本当に似ているHibernate <set> key from joined table(IF:

Select ... WHERE BOOKS_EXTRA_INFO.AUTHOR_ID = 1 

私はこの質問を見つけました私の質問と同じではありませんが、ソリューションはXMLマッピングを使用しており、流暢なマッピングで同じことを行う方法を理解していません。

I DBスキーマを変更できません。

私の問題の正しい流暢なマッピングは何ですか?

編集:正確なマッピングが表示されるようにマッピングを更新しました。

答えて

0

あなたがリンクした答えは、セットのテーブル名を指定します。これはFluentで簡単に行うことができます:

HasMany(a => a.Books).Table("BOOKS_EXTRA_INFO"); 
+0

私はすでにそれを試して助けにはならなかったことを忘れてしまいました。 これは流暢なnhibernateのバグでしょうか? – ItayMaoz

+0

テーブルが指定されていれば、生成されたXMLマッピングをチェックしましたか? – cremor

関連する問題