0

JTable に 2 つの異なるリストのコンテンツを入力するにはどうすればよいですか? データベース内の 2 つの異なるテーブルから取得したオブジェクトを含む 2 つのリストがあります。次に、それらすべてを JTable の 1 つの行に配置したいと考えています。そのため、2 つの for ループを実行しました。1 つは list1 のコンテンツを追加し、もう 1 つの for ループは 2 番目の List のコンテンツを追加します。

問題は、データベースに複数のデータ行がある場合、2 番目のリストが同じ情報を繰り返し続けることです。

これが私のコードです

private void executeHQLQuery() {
    try {
        Session session = HibernateUtil.getSessionFactory()
            .openSession();
        session.beginTransaction();
        Query q = session.createQuery("from Modelo as m");
        Query q1 = session.createQuery("from Cidade as e");
        List < Modelo > resultList = q.list();
        Integer codModelo = new Integer(resultList.get(0).getCodModelo());
        List < Cidade > resultList2 = q1.list();

        displayResult(codModelo, resultList2, resultList);
        session.getTransaction().commit();
    } catch (HibernateException he) {
        he.printStackTrace();
    }
}
private void displayResult(Integer x, List resultList2, List resultList) {
    Vector < String > nomeTabela = new Vector < String > ();
    Vector tableData = new Vector();
    nomeTabela.add("codModelo");
    nomeTabela.add("codCidade");
    nomeTabela.add("nomeCidade");
    nomeTabela.add("estadoCidade");
    nomeTabela.add("paisCidade");
    nomeTabela.add("nomeModelo");
    nomeTabela.add("anoModelo");
    nomeTabela.add("marcaModelo");
    for (Object o: resultList2) { //Works fine
        Cidade c = (Cidade) o;
        Vector < Object > oneRow = new Vector < Object > ();
        oneRow.add(x);
        oneRow.add(c.getCodCidade());
        oneRow.add(c.getNomeCidade());
        oneRow.add(c.getEstadoCidade());
        oneRow.add(c.getPaisCidade());
        for (Object o1: resultList) {
            Modelo m = (Modelo) o1;
            oneRow.add(m.getNomeModelo());
            oneRow.add(m.getAnoModelo());
            oneRow.add(m.getMarca());

        }

        tableData.add(oneRow);
    }
    resultTable.setModel(new DefaultTableModel(tableData, nomeTabela));
}

resultList2 は正常に動作し、resultList はデータベース内の最後の Modelo テーブルからの情報を表示し続けるだけです

4

1 に答える 1