繁体   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