0
웹 응용 프로그램에 NHibernate를 사용하고 있습니다. 나는이 같은 모델을 가지고 :속성 가져 오기 하위 쿼리 NHibernate
public class ProductViewModel {
public virtual int Id { get; set; }
/* others simple properties */
public virtual IList<OfferViewModel> LastOffers { get; set; }
public ProductViewModel() { }
}
public class OfferViewModel {
public virtual string UserName { get; set; }
public virtual decimal Prince { get; set; }
public OfferViewModel() { }
}
내가 어떻게 HQL 하위 쿼리와 함께 "LastOffers"컬렉션 속성을 가져, 알고 싶습니다
? 나는 10 가지 마지막 제안으로 그것을 가져오고 싶다. 내 모델이 올바르게 매핑되어 있지만 하위 속성을 가져올 sintax를 알지 못합니다.
오늘은 내 뷰 모델을 가져 오기 위해이 같은 명령을 사용하고 있습니다 :
public IList<ProductViewModel> GetProductsForSalles()
{
return
Session.CreateQuery(@"select p.Id as Id,
p.Name as Name,
p.Price as Price,
p.Price as Date
/* FETCH LastOffers? */
from Product p
where p.Active=true and (p.Status=:Status)
order by a.Date asc")
.SetParameter("Status", Status.Started)
.SetMaxResults(50)
.SetResultTransformer(Transformers.AliasToBean<ProductViewModel>())
.List<ProductViewModel>();
}
감사합니다!
Hello Genius, awser에게 감사드립니다. 사실, DistinctRootEntityResult 내 문제를 해결할 수 shoul :),하지만 거기에 상위 10 개 레코드와 ID desc에 의해 순서와 속성을 가져 오는 방법은 무엇입니까? 나는 제품마다 많은 제안을 할 것이기 때문에 이것이 performace를 향상 시키길 원한다. 다시 한 번 감사드립니다! –
@Felipe, 필자는이 기능을 한번도 사용하지 않았지만, NH가 AFAIK를 지원했습니다. 엔티티의 HBM 파일에서 fetchmode 매개 변수로 재생 해보십시오. – Genius