Olá pessoal,
estou com um problema + ou - assim:
quando vou buscar uma “Dependencia” (é o nome da classe (nome dado pras salas)) no banco eu tenho uma espécie de factory que pra montar a Dependência (objeto) que precisa de 2 objetos da classe Usuário (detentorDir e dententorInd) que na tabela de dependencias estão armazenados somente com os Ids.
há alguma forma de fazer uma outra busca no banco? (pra pegar o restante dos dados dos usuários sem fechar o ResultSet das dependencias??)
olhem o código:
List listaDependencias = new ArrayList();
try {
Statement stm = SingletonStm.getInstance().getStatement();
ResultSet rs = stm.executeQuery(SQLs.procurarDependenciasRestricoes(codigo, descricao, situacao,
detentordir_id, docdetentordir, detentorind_id, docdetentorind, obs, ordenacao));
while (rs.next()){
Dependencia dependencia = new Dependencia();
if (rs.getObject("id") != null) dependencia.setId(new Integer(rs.getInt("id")));
if (rs.getObject("codigo") != null) dependencia.setCodigo(new Integer(rs.getInt("codigo")));
if (rs.getObject("descricao") != null) dependencia.setDescricao(rs.getString("descricao"));
if (rs.getObject("situacao") != null) dependencia.setSituacao(new Integer(rs.getInt("situacao")));
if (rs.getObject("detentordir_id") != null) {
Integer diretoId = new Integer(rs.getInt("detentordir_id"));
dependencia.setDetentorDir(GerenteUsuario.procuraUsuarioId(diretoId, null));
}
if (rs.getObject("docdetentordir") != null) dependencia.setDocDetentorDir(rs.getString("docdetentordir"));
if (rs.getObject("detentorind_id") != null) {
Integer indiretoId = new Integer(rs.getInt("detentorind_id"));
dependencia.setDetentorInd(GerenteUsuario.procuraUsuarioId(indiretoId, null));
}
if (rs.getObject("docdetentorind") != null) dependencia.setDocDetentorInd(rs.getString("docdetentorind"));
if (rs.getObject("obs") != null) dependencia.setObs(rs.getString("obs"));
listaDependencias.add(dependencia);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return listaDependencias;
depois de:
dependencia.setDetentorDir(GerenteUsuario.procuraUsuarioId(diretoId, null));
o ResultSet (rs) já está fechado pois a classe GerenteUsuario fez uma busca no banco…
tava querendo consertar isso sem precisar fazer uma busca no banco mais elaborada, ou seja, pegando as informações dos usuários no query, visto que já há a classe GerenteUsuario que me retorna um objeto facilmente…
não sei se me fiz entender, mas qq ajuda é bem vinda…
Obrigado.