Никаких результатов, возвращаемых ошибкой запроса в PostgreSQL

Я пытаюсь вставить данные в таблицу. После выполнения запроса я получаю сообщение об исключении

org.postgresql.util.PSQLException: No results were returned by the query.
org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:284)

Данные вставляются успешно, но я понятия не имею, почему я получаю это исключение?

Ответы

Ответ 1

использование

executeUpdate

вместо

executeQuery

если данные не будут возвращены (т.е. операция SELECT non-).

Ответ 2

Если вам нужен последний сгенерированный идентификатор, вы можете использовать этот код после использования метода executeUpdate()

 int update = statement.executeUpdate()
 ResultSet rs = statement.getGeneratedKeys();
 if (rs != null && rs.next()) {
  key = rs.getLong(1);
 }

Ответ 3

Используйте @Modifying аннотацию над @Query анонсом.

@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); 

То же самое верно для любого DML-запроса (то есть DELETE, UPDATE или INSERT)