#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 (удаленной службы) для доступа к базе данных, а не прямого доступа к БД.