не удалось извлечь ResultSet; вложенным исключением является org.hibernate.exception.GenericJDBCException: не удалось извлечь ResultSet - PullRequest
1 голос
/ 12 июня 2019

Я хочу вставить некоторые данные, и перед вставкой я хочу удалить предыдущие данные, относящиеся к этому. Но получение "не удалось извлечь ResultSet; вложенное исключение - org.hibernate.exception.GenericJDBCException: не удалось извлечь ResultSet" эта ошибка.

Мой контроллер класса

@PostMapping(path="signin",produces = "application/json")
@ResponseBody public LoginView loginProcess( @RequestBody User user){

try {
    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    Date date = new Date();
    Date newdate = new Date(date.getTime()+9*3600*1000);

this.loginRepository.delete(user.getUsername());
this.loginRepository.insert(user.getUsername(),user.getDetails(),dateFormat.format(date),dateFormat.format(newdate));

catch(Exception e) {
        System.out.println(e.getMessage());
    }
}

Репозиторий класса

public interface LoginRepository extends JpaRepository<User, Integer>{


@Query(value="INSERT INTO DBA.TOKEN_DETAILS (username,TOKEN,ACTIVE,VALID_FROM,VALID_TO) VALUES(:username,:token,1,:validFrom,:validTo)",nativeQuery=true)
public void insertToken(@Param("username")String username, @Param("token")String token, @Param("validFrom")String validFrom, @Param("validTo")String validTo);

@Transactional
@Modifying 
@Query(value="DELETE FROM DBA.TOKEN_DETAILS WHERE username=?1",nativeQuery=true)
public void deleteToken(String username);

}

Журнал ошибок, который я получаю, -

2019-06-12 15:52:10.654  WARN 11120 --- [nio-8087-exec-2] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 0, SQLState: JZ0R2
2019-06-12 15:52:10.654 ERROR 11120 --- [nio-8087-exec-2] o.h.engine.jdbc.spi.SqlExceptionHelper   : JZ0R2: No result set for this query.
could not extract ResultSet; nested exception is org.hibernate.exception.GenericJDBCException: could not extract ResultSet

1 Ответ

0 голосов
/ 12 июня 2019

Это было решено добавлением аннотации @Modifying в классе репозитория

@Modifying
    @Query(value="INSERT INTO DBA.TOKEN_DETAILS (username,TOKEN,ACTIVE,VALID_FROM,VALID_TO) VALUES(:username,:token,1,:validFrom,:validTo)",nativeQuery=true)
    public void insertToken(@Param("username")String username, @Param("token")String token, @Param("validFrom")String validFrom, @Param("validTo")String validTo);
...