Обновление Jtable после удаления объекта с помощью hibernate?

#java #hibernate #swing #jtable

#java #переход в спящий режим #swing #jtable

Вопрос:

заполнение таблицы исходными данными:

 additionsTable.setModel(new AdditionalDocsTableModel(addDocuments));
  

конструктор модели:

 public AdditionalDocsTableModel(List<MyDocument> docs) {
        this.docs = docs;
    }
  

Вот код в AbstractTableModel для удаления объекта из таблицы:

       public void delObjectAtRow(int row){
             MyDocument doc= docs.get(row);
             MainFrame.session.beginTransaction();
             MainFrame.session.update(doc);
             MainFrame.session.delete(doc);
             MainFrame.session.beginTransaction().commit();
        }
  

вызывающий метод:

 private void deletePopupItemActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
         if (additionsTable.getSelectedRow() > -1) {

            AdditionalDocsTableModel t = (AdditionalDocsTableModel) additionsTable.getModel();
            t.delObjectAtRow(additionsTable.getSelectedRow());


        }
}
  

Как мне заполнить модель новыми данными? Прямо сейчас я не могу получить новые данные из сеанса. я попытался загрузить и обновить. но получает тот же материал, что и перед удалением. Буду признателен за любую помощь. заранее спасибо!

Ответ №1:

Вам нужно вызвать один из методов fire базового класса, чтобы уведомить JTable об изменении данных.

Комментарии:

1. спасибо за ответ. Но как мне получить новые данные из сеанса для заполнения модели?

2. Примечание: Если это не локальная база данных, рассмотрите возможность использования вызова EJB (удаленной службы) для доступа к базе данных, а не прямого доступа к БД.