微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 使用hibernate从postgresql获取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结果?

提前致谢!

解决方法:

Postgresql JDBC驱动程序本身不支持AFAIK,copY(最后在postgresql-9.4.1208.jre7上测试过).因此,Hibernate无法运行该命令.

如果您确实需要使用copY,则应考虑使用copyManager:how to copy a data from file to PostgreSQL using JDBC?

但就个人而言,我会主张你改变你的做法.使用copY加载数据对我来说就像是一种黑客攻击.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐