0
我創建查詢(HQL)看起來像:如何使用Criteria查詢轉換此連接?
Session.CreateQuery(
"select a from Article as a join a.Categories c where c.ID = :ID")
.SetInt32("ID", categoryId)
我創建查詢(HQL)看起來像:如何使用Criteria查詢轉換此連接?
Session.CreateQuery(
"select a from Article as a join a.Categories c where c.ID = :ID")
.SetInt32("ID", categoryId)
直截了當它看起來像這樣:
ICriteria query = Session
.CreateCriteria<Article>("a")
.CreateCriteria("a.Categories", "c")
.Add(Expression.Eq("c.ID", categoryId)
也有IDEQ表達,但你不能說哪個ID(其中實體/別名),所以我不信任它。
ICriteria query = Session
.CreateCriteria<Article>("a")
.CreateCriteria("a.Categories", "c")
.Add(Expression.IdEq(categoryId) // a.ID or c.ID?
存在與加入到集合的一個問題。你會得到儘可能多的結果,因爲文章和類別的連接會產生,這可能會使文章倍增。
使用結果轉換器或子查詢。見this post。