我执行一个查询,该查询应将结果作为 CSV 返回到 STDOUT。
当我在 pgAdmin 中执行查询时,我成功获得了结果。
但是,当我使用 hibernate 执行相同的查询时,出现以下异常:
javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not extract ResultSet
我不能显示表结构,但我知道 sql 没问题(我已经复制了“sql”的全部内容,然后在 pgAdmin 中执行它);查询看起来像:
String sql = "COPY (" + sqlQuery + ") TO STDOUT WITH CSV";
然后我执行如下:
Query query = getEntityManager().createNativeQuery(sql);
Object result = query.getSingleResult(); // I also tried the other get results method...(`getFirstresult()` has returned 0)
在我发现的任何相关问题中,我看到 OP 将 csv 放入文件而不是 stdout。
是否可以使用 hibernate 返回 csv 结果?
提前致谢!
最佳答案
AFAIK,PostgreSQL JDBC 驱动程序本身不支持 COPY
(最后在 postgresql-9.4.1208.jre7
上测试)。因此,Hibernate 无法运行该命令。
如果你真的需要使用COPY
,你应该考虑一个CopyManager
:how to copy a data from file to PostgreSQL using JDBC?
但就我个人而言,我建议您改变方法。使用 COPY
加载数据对我来说像是一种 hack。
关于java - 使用 hibernate 从 postgresql 获取 CSV 格式的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40132279/