n 個のネットワーク ドメイン アカウントに関連するクライアント エンティティを取得しました。
Client:
IList<DomainInfo> domainInfo;
DomainInfo:
string domain;
string username;
Client.hbm.xml のマッピングには以下が含まれます。
<bag name="domainInfo" cascade="all" lazy="false">
<key column="client"/>
<one-to-many class="Kardex.CMS.Domain.Model.Client.DomainInfo"/>
</bag>
DomainInfo.hbm.xml の mappinf には、Client への多対 1 のマッピングが含まれていません。
ドメイン情報要素を持つクライアント エンティティをデータベースに挿入すると、すべて正常に動作します。各ドメイン情報エントリには、適切なクライアントにマップされた「クライアント」列が含まれています。
ここで、特定のネットワーク ドメインとユーザー名でユーザーにクエリを実行したいと考えています。
clients = session.CreateQuery("from Client c where c.domainInfo.username = :winuser and c.domainInfo.domain = :windomain")
.SetParameter("winuser", "john_doe")
.SetParameter("windomain", "domain123")
.List<Client>();
しかし、例外があります:
illegal attempt to dereference collection [client0_.id.domainInfo] with element
property reference [username]
INNER JOIN も試しましたが、別の例外が発生しました。
from Client c inner join c.domainInfo d where d.username = :winuser and d.domain = :windomain
スロー
Could not execute query[SQL: SQL not available]
これは簡単な作業だと思いますか?ここで何が問題なのですか?
前もって感謝します!