getGeneratedKeys () após PreparedStatement.executeBatch ()

eu queroINSERT várias linhas usando umPreparedStatement:

ps = con.prepareStatement(query,PreparedStatement.RETURN_GENERATED_KEYS);

for(Element e:listOfElements){
    ps.setString(1,this.col_val_1);
    ps.setString(2,this.col_val_2);
    ps.setInt(3,this.col_val_3);

    ps.addBatch();
}

ps.executeBatch();
ResultSet rs = ps.getGeneratedKeys();

Neste ponto, quando eu esperava obter o PK gerado para cadaINSERT, Eu entendi issoSQLServerException:

com.microsoft.sqlserver.jdbc.SQLServerException: The statement must be executed before any results can be obtained.

Eu esperava obter um ResultSet com uma linha para cada inserção realizada, para que eu pudesse obter cada PK gerado.

Eu estou esperando errado? Estou fazendo algo errado? Isso pode ser feito de uma maneira diferente usando a execução em lote?

questionAnswers(1)

yourAnswerToTheQuestion