4

我正在使用 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[]> 列名作为键,列值作为对象数组。

如何获取所有列名及其值?

4

2 回答 2

1

最后,找到了解决方案,我将与您分享(也许对某人有帮助)。这是我所做的:

于 2012-09-29T09:13:34.347 回答
0

(这只是一个想法,我没有测试过。它需要 Criteria API。)

如果你设法得到结果 as List<javax.persistence.Tuple>,你可以拿一个Tuple并调用getElements()它——你会得到一个TupleElement<?>你可以调用的 s列表getAlias()。大概这将是列名。但我不是 100% 确定,如果没有返回元组(结果),它就行不通,但我认为值得一试。见9.2。元组条件查询

对于这种方法,这可能会有所帮助:

于 2012-09-28T19:49:51.557 回答