我的 Web 应用程序中有一个管理控制台,允许管理员对我们的数据库执行自定义 SQL SELECT 查询。
在底层,应用程序使用的是 Hibernate,但这些查询不是 HQL,它们是纯 SQL,所以我使用的是这样的 native 查询:
protected EntityManager em;
public List<Object[]> execute(String query) {
Query q = em.createNativeQuery(query);
List<Object[]> result = q.getResultList();
return result;
}
这可以正常工作,但它只返回数据行,没有额外信息。我还想获得列名,因此当我将结果打印回给用户时,我还可以打印一个标题以显示各个列的内容。
有什么办法吗?
最佳答案
Query query = entityManager.createNamedQuery(namedQuery);
NativeQueryImpl nativeQuery = (NativeQueryImpl) query;
nativeQuery.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
List<Map<String,Object>> result = nativeQuery.getResultList();
And now you have Map<String,Object> . You can see your Column Names
关于java - 从 JPA native 查询中获取列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44626609/