我對標準有疑問: 如何使用標準(或類似標準)過濾和/或使用其他標準做任何事情?在另一個標準之上使用標準
喜歡的東西:
選擇客戶端*從 (SELECT * FROM客戶)爲客戶
真正的問題是另一回事,但實現這種行爲將是了不起的......
(順便說一句,Java和.NET的歡迎,幫助)
感謝
我對標準有疑問: 如何使用標準(或類似標準)過濾和/或使用其他標準做任何事情?在另一個標準之上使用標準
喜歡的東西:
選擇客戶端*從 (SELECT * FROM客戶)爲客戶
真正的問題是另一回事,但實現這種行爲將是了不起的......
(順便說一句,Java和.NET的歡迎,幫助)
感謝
你FROM子句需要是一個映射對象。你可以做的WHERE子句中子查詢......是這樣的:
select c from clients c where c.id in (select c2.id from clients c2)
這將有助於如果你能給一個更好的例子。您提供的示例可以降低到以下HQL:
"from clients"
...這不是非常有用。
哈哈,謝謝。我的問題是,這是一個相當艱難的查詢,把nhibernate常見的標準... 也許我需要多學習一點,來想出一個更好的解決方案。 – 2009-08-25 13:18:14
我不確定我是否正確理解你的問題,但是如果你想在對象列表上選擇一個對象,你可以使用子查詢DetachedCriteria。我一直都在使用它,特別是在創建左外連接時分頁對象,這可能會導致實體數量不正確。
想象一下,你已經買誰的產品,有關係多對多得到用戶:
昏暗的DC作爲的DetachedCriteria = DetachedCriteria.For(的GetType(用戶))SetFirstResult(PAGENUMBER * itemsPerPage).SetMaxResults(itemsPerPage ) Session.CreateCriteria(的GetType(用戶))。加入(Subqueries.PropertyIn( 「ID」,DC)).CreateAlias( 「ProductsBought」, 「PB」,NHibernate.SqlCommand.JoinType.LeftOuterJoin)
湯姆的權利,也許你應該更精確...
Hibernate支持SELECT和WHERE caluse中的子查詢。 OP是關於FROM子句中的子查詢。它不能做AFAIK。 – 2009-08-21 13:23:43
不幸的是,他是對的... 我的意圖是使用從條款... – 2009-08-25 13:15:22
你可以嘗試添加NHibernate.Criterion.InExpression
到您的標準。
發現在這個博客上的例子: http://www.lostechies.com/blogs/jimmy_bogard/archive/2008/08/26/parameter-lists-in-nhibernate.aspx
偉大的逃生,非常感謝你,非常非常 – 2010-01-13 13:56:22
你爲什麼不張貼真正的問題?一般的解決方案不一定適合您的情況。 – 2009-08-20 21:26:57