[注]実際の質問については、さらに下の更新を参照してください。誰にとっても役立つ場合に備えて、元のものを残しました...
これを機能させようとしているだけです。私が知る限り、ドキュメントの Kats/Kittens の例のように見えますが、使用しようとすると NullReferenceException が発生します。
CustomerOrder order = CurrentSession.CreateQuery(
@"select new CustomerOrder(Name)
from CustomerOrder o
left join fetch o.OrderItems as items
where o.Id = :Id")
.SetParameter("Id", id)
.UniqueResult<CustomerOrder>();
結合フェッチを省略した場合 (OrderItems なしで「CustomerOrder」を戻すため) は機能します。私の CustomerOrder には、'Name' の文字列を取るコンストラクターがあり、取得している注文のデータベースに OrderItems レコードがあります。
私は何を間違っていますか?
[更新] いくつかの値を使用して新しいオブジェクトをインスタンス化していて、実際に OrderItems をあたかも新しくインスタンス化されたオブジェクト。
私が必要としているのは、Name フィールドだけが入力された Order であり、そのコレクションまたは OrderItem の子であり、理想的には「説明」フィールドのみが入力されています。これを行いたいので、HQL が通常行うようにすべての列を取得しません (パフォーマンス上の理由から)。
これを行う最善の方法は何ですか?
ありがとう