当前位置: 首页 > 面试题库 >

从JPA本机查询获取列名

南宫勇军
2023-03-14
问题内容

我的Web应用程序中有一个管理控制台,允许管理员在数据库上执行自定义SQL SELECT查询。

在下面,该应用程序正在使用Hibernate,但是这些查询不是HQL,它们是纯SQL,因此我使用的是本机查询,如下所示:

protected EntityManager em;

public List<Object[]> execute(String query) {
    Query q = em.createNativeQuery(query);
    List<Object[]> result = q.getResultList();
    return result;
}

这可以正常工作,但是它只返回数据行,没有额外的信息。我还想获取列名,因此当我将结果打印回用户时,我还可以打印标题以显示各个列。

有什么办法吗?


问题答案:

经过很长一段时间没有答案,并根据我自己的进一步研究,似乎无法完成此操作。



 类似资料:
  • 当使用jpa本机查询 事务传播是我们正在使用的正确jpa的唯一特性吗? 在我的意见中,我就像使用普通的旧jdbc pluc jpa事务传播 我正在阅读PRO JPA一书,根据我的理解 当我们使用JPA本机查询获取一组标量值时(与我们使用jdbc的方式很相似),实际上没有托管实体和持久性上下文的概念。当我们通过本机查询检索实体时,情况会发生变化。

  • 我有一个存储库,我正试图用它从序列中获取下一个值。我需要参数化序列名。 存储库查询类似于: @query(value=“select?1.nextval from dual;”,nativeQuery=true)字符串getSeqID(@param(“seqName”)字符串seqName);

  • 我们希望将字符串列表传递到名为JPA的本机查询中。我们如何才能做到这一点。它正在引发无效的查询参数异常。

  • 问题内容: 我在Oracle数据库11g中使用Pl / SQL。 我正在编写一个将select语句作为参数(varchar2)的函数。该函数使用for循环遍历行并将格式应用于特定的列,并输出整个内容。基本上,我需要某种方式来获取列名,以便可以在顶部显示它们。我知道有多种方法可以对表执行此操作,但是由于传入了此查询,因此可能未选择所有列,可能已使用别名等。 有没有一种方法可以从此查询中选择列名? 理

  • 问题内容: JPA()中的本机查询是否支持缓存? 我正在填写自己的数据传输对象,因为sql查询会联接多个表,并且仅从表中获取几个列。 问候 问题答案: 这是可能的,但 您必须使用显式或。 也可以看看 缓存SQL查询问题 hibernate:真正了解二级和查询缓存

  • 我需要为分页的目的计算group by记录的数量。例如: 但由于JPA的限制,JPQL不允许从子查询中选择计数,因此无法通过QueryDSL实现。 是否可以从QueryDSL、JPAQuery或JPQLQuery获取本机SQL?我的计划是通过EntityManager构造并执行select count本机SQL语句。