2012-05-21 21 views
0

我正在使用Grails作爲Web應用程序,並且必須創建一個數據庫查詢,其中我使用某些值進行計算。 這些值來自我正在從and the grails-application中選擇的表。計算值也應該傳遞給結果。計算本身並返回所有值都像魅力一樣工作。 結果即時得到是類似的東西(選擇簡單地從表中的所有columsn):休眠/ SQL爲結果添加名稱/鍵

[[19, 15, false, 49.04757, 8.37106, 1.0, 'some text', false, 0, 0.03360229674009102]] 

嗯......我會現在要做的就是創建所有結果即時得到的對象。 由於這是我使用的查詢我要添加選項數據庫「addEntity(類名)」的查詢的執行Hibernate的Session - 這樣的:

def list = sessionFactory.currentSession.createSQLQuery(query).addEntity(myClass).list() 

更妙的是 - 我不知道必須手動創建對象。 但問題是,我失去了有關計算值的信息(最上面的代碼段中的最後一項)

有兩種方法可以實現這個目標:hibernate爲我提供了一些選項,如addEntity(myClass ) - 就像我這樣做是爲了創造我的對象 - 要添加的計算

價值的另一種方式是命名的SQL查詢中的結果,所以我得到這樣的:

[[id:19, version:15, some_bool: false, first_double: 49.04757, second_double: 8.37106, some_floatvalue: 1.0, text: 'some text', another_bool: false, calculation_result: 0, 0.03360229674009102]] 

無論哪種方式,我甚至不知道要搜索什麼,因爲我並不十分熟悉這兩種技術。

一切的一切我想要的是一種簡單的清潔方法來創建我的類的實例/對象,另外有計算的結果。 如果你有進一步的想法來實現這一點 - 我感謝每一個提示和提示

即使一些流行語將幫助我得到這個工作。

我希望我清楚我的問題 - 如果不告訴我;)

在此先感謝

+0

所以你想用SQL查詢結果來實體化一個實體嗎?還是有更多的東西呢? – yair

+0

差不多 - 我想實例並要計算(查詢時計算)的結果 – Zobbl

回答

0

相反的org.hibernate.SQLQuery#addEntity你想使用org.hibernate.SQLQuery#addRoot返回您可以用來爲org.hibernate.SQLQuery.RootReturn進一步定義結果映射。在3.6中添加,我很確定Grails使用的是什麼

+0

謝謝,我會嘗試的方法 – Zobbl