Метод T query(PreparedStatementCreator psc, ResultSetExtractor rse) throws DataAccessException; из JdbcTemplate

Пытаюсь сделать запрос используя метод

public <T> T query(PreparedStatementCreator psc, ResultSetExtractor<T> rse) throws DataAccessException {
        return this.query((PreparedStatementCreator)psc, (PreparedStatementSetter)null, (ResultSetExtractor)rse); }

 jdbcTemplate.query(new PreparedStatementCreator() {
        @Override
        public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
            PreparedStatement userStatement = con.prepareStatement(
                    "INSERT INTO USERS "+"(EMAIL,LOGIN,NAME,BIRTHDAY) VALUES (?,?,?,?)", Statement.RETURN_GENERATED_KEYS);
            userStatement.setString(1, user.getEmail());
            userStatement.setString(2, user.getLogin());
            userStatement.setString(3, user.getName());
            userStatement.setTimestamp(4, timestamp);
            return userStatement;
        }
    },new ResultSetExtractor<User>() {
        @Override
        public User extractData(ResultSet rs) throws SQLException, DataAccessException {
            while(rs.next()){
                userDb.setId((long) rs.getInt("id"));
                userDb.setEmail(rs.getString("email"));
                userDb.setLogin(rs.getString("login"));
                userDb.setName(rs.getString("email"));
                userDb.setBirthday(LocalDate.parse(rs.getString("birthday")));
            }
            return userDb;
        }
    });

Мне выдает ошибку: nested exception is org.h2.jdbc.JdbcSQLNonTransientException: Метод разрешен только для запросов. Используйте execute или executeUpdate вместо executeQuery

Метод должен возвращать обьект, но не срабатывает. Может я не понял как делать правильно


Ответы (0 шт):