1

3 つの結合サブクラス (個人、会社、支店) を持つエンティティの連絡先があります。個人、会社、または支店のみを取得する必要がある連絡先で選択クエリを実行すると、次のことができます

連絡先から選択 a.class = Person

Person と Branch の場合、これは正しく機能しています。しかし、Branch 自身が (CompanyId を使用して) Company を参照しているため、今は参照しています。

連絡先から選択 a.class = Company

Company を CompanyId (Branch-Entity から) に置き換えます。

誰かがアイデアを持っていますか? HQL がクラス値を実際の列に置き換えるのを防ぐにはどうすればよいですか?

4

1 に答える 1

2

クラスの完全修飾名(名前空間を含む)を使用してみてください。

select from Contact a where a.class = Your.Namespace.Company

これは、NHibernateがクラス名とプロパティ名を区別するのに役立ちます。

于 2012-08-13T07:35:43.977 に答える