Метод 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
Метод должен возвращать обьект, но не срабатывает. Может я не понял как делать правильно