Minha situação é a seguinte:
-tenho um objeto o qual a sua pk é um campo auto incremento
-tenho outro objeto o qual a sua pk possui o mesmo valor do campo au to incremento citado acima.
-Estou realizando isso dentro de uma transação
Dúvida:
-Como fazer para pegar o id desse elemento, para adicionar esse valor no segundo objeto, antes de comitar a transação, apenas dando o execute no resultSet?
código do método utilizado:
con = databaseCreator.getConnection();
con.setAutoCommit(false);
stat = con.prepareStatement(PropertiesReader.getValue(
"user.insert", path, PropertiesReader.DATABASEQUERIES));
stat.setString(1, user.getEmail());
stat.setString(2, user.getPassword());
stat.setString(3, user.getName());
stat.setBytes(4, null);
stat.execute();
// isso aqui foi uma tentativa frustrada
res = stat.getGeneratedKeys();
stat2 = con.prepareStatement(PropertiesReader.getValue(
"house.insert", path, PropertiesReader.DATABASEQUERIES));
// é desse ID que está a minha dúvida
stat2.setInt(1, user.getId());
stat2.setBytes(2, null);
stat2.setBoolean(3, user.getHouse().isPrivateHouse());
stat2.execute();
con.commit();
} catch (SQLException e) {
if (con != null) {
con.rollback();
}
} finally {
stat.close();
}
Abraços ;D