Ответ 1
использование
executeUpdate
вместо
executeQuery
если данные не будут возвращены (т.е. операция SELECT
non-).
Я пытаюсь вставить данные в таблицу. После выполнения запроса я получаю сообщение об исключении
org.postgresql.util.PSQLException: No results were returned by the query.
org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:284)
Данные вставляются успешно, но я понятия не имею, почему я получаю это исключение?
использование
executeUpdate
вместо
executeQuery
если данные не будут возвращены (т.е. операция SELECT
non-).
Если вам нужен последний сгенерированный идентификатор, вы можете использовать этот код после использования метода executeUpdate()
int update = statement.executeUpdate()
ResultSet rs = statement.getGeneratedKeys();
if (rs != null && rs.next()) {
key = rs.getLong(1);
}
Используйте @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)