Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PostgreSQL中的查询错误未返回任何结果_Java_Database_Jsp_Postgresql_Sql Insert - Fatal编程技术网

Java PostgreSQL中的查询错误未返回任何结果

Java PostgreSQL中的查询错误未返回任何结果,java,database,jsp,postgresql,sql-insert,Java,Database,Jsp,Postgresql,Sql Insert,我正在尝试将数据插入表中。执行查询后,我得到一个异常,声明 org.postgresql.util.PSQLException: No results were returned by the query. org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:284) 数据插入成功,但我不知道为什么会出现此异常???使用 executeUpdate 而不是 executeQu

我正在尝试将数据插入表中。执行查询后,我得到一个异常,声明

org.postgresql.util.PSQLException: No results were returned by the query.
org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:284)
数据插入成功,但我不知道为什么会出现此异常???

使用

executeUpdate
而不是

executeQuery
如果不返回数据(即非
选择操作)。

使用

executeUpdate
而不是

executeQuery

如果不返回任何数据(即非
选择操作)。

如果需要最后生成的id,可以在使用executeUpdate()方法后使用此代码


如果需要最后生成的id,可以在使用executeUpdate()方法后使用此代码

请在@Query注释上使用@Modifying注释

@Modifying @Query(value = "UPDATE Users set coins_balance = coins_balance + :coinsToAddOrRemove where user_id = :user_id", nativeQuery = true) int updateCoinsBalance(@Param("user_id") Long userId, @Param("coinsToAddOrRemove") Integer coinsToAddOrRemove); @修改 @查询(value=“UPDATE Users set coins\u balance=coins\u balance+:coinstoaddor remove where user\u id=:user\u id”,nativeQuery=true) int updateCoinsBalance(@Param(“user_id”)长用户id,@Param(“coinsToAddOrRemove”)整数coinsToAddOrRemove); 任何DML查询(即删除、更新或插入)也是如此。

请在@query注释上使用@Modifying注释

@Modifying @Query(value = "UPDATE Users set coins_balance = coins_balance + :coinsToAddOrRemove where user_id = :user_id", nativeQuery = true) int updateCoinsBalance(@Param("user_id") Long userId, @Param("coinsToAddOrRemove") Integer coinsToAddOrRemove); @修改 @查询(value=“UPDATE Users set coins\u balance=coins\u balance+:coinstoaddor remove where user\u id=:user\u id”,nativeQuery=true) int updateCoinsBalance(@Param(“user_id”)长用户id,@Param(“coinsToAddOrRemove”)整数coinsToAddOrRemove);
对于任何DML查询(即删除、更新或插入)

使用@Modifying和@Transaction-fixed-me

使用@modify和@Transaction-fixed-me

也是如此。我遇到这个问题的原因有点不同——我在使用基于接口的Spring JPA存储库删除行时遇到了这个错误。原因是我的方法签名应该返回一些结果:

@Modifying
@Query(value = "DELETE FROM table t WHERE t.some_id IN (:someIds)", nativeQuery = true)
List<Long> deleteBySomeIdIn(@Param("someIds") Collection<Long> someIds);

导致我提出这个问题的问题有点不同——我在使用基于接口的Spring JPA存储库删除行时遇到了这个错误。原因是我的方法签名应该返回一些结果:

@Modifying
@Query(value = "DELETE FROM table t WHERE t.some_id IN (:someIds)", nativeQuery = true)
List<Long> deleteBySomeIdIn(@Param("someIds") Collection<Long> someIds);

我使用
addBatch
executeBatch
解决了这个问题,如下所示:

statement.addBatch("DELETE FROM public.session_event WHERE id = " + entry.getKey());
statement.executeBatch();

我使用
addBatch
executeBatch
解决了这个问题,如下所示:

statement.addBatch("DELETE FROM public.session_event WHERE id = " + entry.getKey());
statement.executeBatch();

美女很好用。。但是,它是否像executeUpdate工作,但executeQuery不工作??在这两种情况下,数据都被正确插入。@RageshKr,它被正确插入,但Java数据库连接器随后需要数据,而没有数据。所以错误发生在插入之后。美丽!很好用。。但是,它是否像executeUpdate工作,但executeQuery不工作??在这两种情况下,数据都被正确插入。@RageshKr,它被正确插入,但Java数据库连接器随后需要数据,而没有数据。因此,错误发生在插入之后@Transactional@Transactional@Modifying(clearAutomatically=true)@Query(value=Update/Delete/InstertQuery,nativeQuery=true)其@Transactional@Transactional@Modifying(clearAutomatically=true)@Query(value=Update/Delete/InstertQuery,nativeQuery=true)感谢您的帮助,我想要一个JPQL查询的解决方案!谢谢,我想要一个JPQL查询的解决方案!