【发布时间】:2015-09-22 01:48:43
【问题描述】:
我在通过 JPA 本机查询执行“SELECT INTO outfile”查询时遇到问题。
我尝试了以下代码:
Query q = entityManager.createNativeQuery("SELECT * INTO OUTFILE '/tmp/temp.sql' FROM DummyTable");
return q.getResultList();
但我得到了这个例外:
原因:java.sql.SQLException:ResultSet 来自 UPDATE。没有数据。
似乎 JPA 将其视为更新,因此我将代码更改为使用执行更新:
Query q = entityManager.createNativeQuery("SELECT * INTO OUTFILE '/tmp/temp.sql' FROM DummyTable");
q.executeUpdate();
现在,我遇到了另一个例外。
原因:org.hibernate.exception.GenericJDBCException:不能 执行本机批量操作查询
原因:java.sql.SQLException: Can not issue executeUpdate() for 选择
有谁知道如何解决这个问题?谢谢!
【问题讨论】:
-
您需要将查询视为更新,q.getResultList() 将尝试提取 ResultSet,当您执行转储(“select into outfile”)时,获得的结果是整数(或long) 表示写入文件的记录数。
-
感谢您的评论。我确实尝试过使用 executeUpdate(),但结果出现了另一个异常。