我执行一个查询,该查询应该将结果作为CSV返回给STDOUT.当我在pgAdmin中执行查询时,我成功获得了结果.但是,当我使用hibernate执行相同的查询时,我得到以下异常:javax.persistence.PersistenceException: org.hiber...
![](https://oss.womengda.net/imgfile/2310/1ER05A016430-32P8.jpg)
我执行一个查询,该查询应该将结果作为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结果?
提前致谢!
解决方法:
PostgreSQL JDBC驱动程序本身不支持AFAIK,COPY(最后在postgresql-9.4.1208.jre7上测试过).因此,Hibernate无法运行该命令.
如果您确实需要使用COPY,则应考虑使用CopyManager:how to copy a data from file to PostgreSQL using JDBC?
但就个人而言,我会主张你改变你的做法.使用COPY加载数据对我来说就像是一种黑客攻击.
本文标题为:java – 使用hibernate从postgresql获取CSV结果
![](/xwassets/images/pre.png)
![](/xwassets/images/next.png)
- Spring5新功能日志框架Log4j2整合示例 2022-11-25
- 详解Java对象转换神器MapStruct库的使用 2023-05-08
- 理解Java核心技术卷一第十一版 2023-10-08
- Java Socket 编程详解 2023-07-15
- 基于Java实现中文分词系统的示例代码 2023-02-27
- Java打印数组的三种方法整理 2023-01-18
- Nebula Graph介绍和SpringBoot环境连接和查询操作 2023-06-10
- Springboot 引入 Redis 并配置序列化并封装RedisTemplate 2023-05-24
- Idea工具中使用Mapper对象有红线的解决方法 2023-05-24
- Spring Security自定义认证器的实现代码 2023-01-29