簡體   English   中英

從Hibernate本機查詢的結果中獲取動態生成的列名

[英]Getting dynamically generated column names from result of Hibernate native query

我正在使用Hibernate本機方法執行存儲過程,此存儲過程根據另一個表ID創建列名。 所以它的列看起來像這樣:

| id | ......其他一些專欄... | 名字| c_1 | c_2 | c_4 | c_ .. |

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

目前我正在使List<Object[]>沒有問題,但我需要,例如, Map<String,Object[]>列名作為鍵,列值作為Objects數組。

如何獲取所有列名稱及其值?

最后,找到了解決方案,我將與您分享(也許可以幫助某人)。 這是我做的:

(這只是一個想法,我還沒有測試過。它需要Criteria API。)

如果您設法將結果作為List<javax.persistence.Tuple> ,您可以使用一個Tuple並在其上調用getElements() - 您將獲得一個TupleElement<?>的列表,您可以在其上調用getAlias() 據推測這將是列名。 但我不是百分百肯定,如果沒有返回元組(結果),它將無法工作,但我認為值得一試。 9.2。 元組標准查詢

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM