Minha duvida é a seguinte…quando vou adicionar dados de apenas 1 tabela do meu banco à JTable, td bem…tenho esse método no meu Controller…
private ArrayList<ExAdversoVO> consultarTodos(){
try{
interfaceCRUD = new ExAdversoDAO();
return (ArrayList<ExAdversoVO>)interfaceCRUD.consultarTodos();
}catch(ConsultarException e){
e.printStackTrace();
return new ArrayList<ExAdversoVO>();
}finally{
interfaceCRUD.getSessaoAberta().close();
}
}
e tenho esse consultarTodos que é chamado nessa classe de cima…
public ArrayList<ExAdversoVO> consultarTodos()throws ConsultarException{
Session sessao = null;
Query query = null;
try{
sessao = getSessaoAberta();
String hql = "SELECT c FROM ExAdversoVO c ORDER BY c.cd_ex_adverso ASC";
query = sessao.createQuery(hql);
return (ArrayList<ExAdversoVO>)query.list();
}catch(Exception e){
e.printStackTrace();
throw new ConsultarException("Erro ao consultar todos. ["+query == null ? "error" : query.getQueryString()+"]", e);
}finally{
if(sessao != null){
sessao.close();
}
}
}
Minha Dúvida é como quando vou preencher a JTable, pegar os dados de duas tabelas relacionadas no banco…pois no laço “for” eu irei correr apenas um tipo…
public void preencherTabela(){
ArrayList<ExAdversoVO> dadosEncontrados = new ArrayList<ExAdversoVO>();
try{
dadosEncontrados = consultarTodos();
TableModelExAdverso tableModel = (TableModelExAdverso)viewTabela.getTableExAdverso().getModel();
for(ExAdversoVO exAdverso : dadosEncontrados){
Integer codigo = exAdverso.getCd_ex_adverso();
String obs = exAdverso.getObservacoes();
tableModel.adicionarLinha(new String[]{codigo.toString(),
obs});
}
}catch(IllegalArgumentException e){
e.printStackTrace();
}
}
Já quebrei a cabeça aqui, mas talvez o hibernate forneça alguma forma que fique fácil de ser feito isso, e como sou novato em hibernate isso não seja muito difícil…
Obrigado Galera!!