java - 使用 hibernate 从 postgresql 获取 CSV 格式的结果

标签 java postgresql hibernate csv

我执行一个查询,该查询应将结果作为 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/

相关文章:

java - 使用@OrderColumn 的JPA 多重获取返回多个空值

sql - PostgreSQL中如何实现嵌套INSERT语句?

java - MySQLIntegrityConstraintViolationException : column "question_id" cannot be null error

java - @ElementCollection、@CollectionTable 和 Enum - 奇怪的删除/插入行为

java - spring 4 ajax 响应 406 Not Acceptable

java - "cannot find symbol "oop pig 游戏错误

postgresql - 防止开始时间、结束时间列中的时间重叠

java - hibernate 事件检测器

java - Cytoscape中如何获取节点的度数

sql - 检查 Postgres 中 2 个日期范围之间的交集