【发布时间】:2011-07-27 21:21:14
【问题描述】:
我正在为我的应用程序创建通用报告逻辑,并希望能够运行任何查询并解析响应。报告的输入是我使用 EntityManager.createNativeQuery(query) 运行的原生 SQL 查询。
我的所有这些工作都很好,但目前我还必须指出查询响应的返回“标题”。
例如,对于这个查询:
SELECT name, email FROM users;
我需要知道我正在从查询中取回姓名和电子邮件。我从运行查询中得到的只是一个字符串数组列表。不知何故,我希望能够为这个特定查询返回一个包含 ["name", "email"] 的数组或列表。
我没有看到查询 Query 对象以找出此信息的方法。我也没有在响应中看到任何有关此数据的迹象。有没有办法在 JPA 中获取这些数据?
具体来说,我使用的实现是 EclipseLink。
谢谢。
【问题讨论】:
-
@ChadNC - 不过,我如何通过 JPA 获取该对象?我了解通过 JDBC 使用该对象,但无法通过 JPA 获取该对象的句柄。
-
您使用 jpa 原生查询而不是 jdbc 的原因是什么?
-
应用程序的其余部分使用 JPA(没有本机查询),因此这是我们当前进入数据库后端的方式。我正在使用本机查询,因为我正在生成一堆报告查询,这些查询基本上将来自多个实体的数据汇集在一起——比如用户登录的次数,或者用户在系统中创建的对象数量。对于这一部分,我不想编写新代码来处理新报告——我只想运行查询并显示数据。
标签: java jpa eclipselink