2012-09-28 85 views
3

我正在使用Hibernate本機方法執行存儲過程,此存儲過程根據另一個表Ids創建列名稱。所以它的柱子看起來像這樣:從Hibernate本機查詢的結果中獲取動態生成的列名稱

| id | ...其他一些列... |名稱| c_1 | c_2 | c_4 | c_ .. |

如果我打電話給Query.getResultList()它返回List<Object[]>,我不知道列名。我必須知道列名(和相應的列索引)才能繼續我的進一步業務邏輯。我也不能使用EntityManager.createNativeQuery(String s, Class aClass),因爲它不是一個POJO類。

目前我得到List<Object[]>沒有問題,但我需要,例如,Map<String,Object[]>列名作爲鍵和列值作爲對象數組。

如何獲取所有列名與他們的值?

回答

0

(這只是一個想法,我沒有測試它,它需要的標準API。)

如果你能得到的結果爲List<javax.persistence.Tuple>,你可以採取一個Tuple並在其上調用getElements() - 你會得到一份TupleElement<?>的清單,你可以撥打getAlias()。據推測這將是列名。但是我不是100%肯定的,如果沒有返回元組(結果),它將不起作用,但我認爲這是值得一試的。見9.2. Tuple criteria queries

對於這種方法,這可能幫助:

相關問題