Откуда hibernate берет несуществующие данные?

282
06 августа 2017, 06:51

Есть форма и таблица с данными.
Открываю нужный объект для редактирование в первый раз, естественно всё нормально. Закрываю форму. Из БД вручную удаляю строку. Открываю форму ещё раз. И откуда-то hibernate берет данные(из кэша ли) которых в БД уже нет.
Почему, если я закрываю сессию, то и данных в кэше быть не может...
Открытие формы:

ProductBrand productBrand = productBrandDAO.getById(
        Long.parseLong(getTblPanel().getValueRow(index).get(0)));
int result = JOptionPane.showConfirmDialog(null,
    modalPanel.createEditingProductBrandPanel(
            new ProductTypeDAO().getAll(), productBrand),
    "Редактирование значений:", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);  

Метод getById:

@Override
public ProductBrand getById(Long id) {
    Session session = null;
    ProductBrand result = null;
    try {
        session = HibernateUtil.getSessionFactory().openSession();
        result = (ProductBrand) session.get(ProductBrand.class, id);
    }catch (Exception e) {
        JOptionPane.showMessageDialog(null, e.getMessage(), "Ошибка I/O", JOptionPane.OK_OPTION);
        System.out.println(e.getMessage());
    } finally {
        if (session != null && session.isOpen())
            session.close();
    }
    return result;
}  

Как так получается? Ну от куда подгружаются те данные которых в БД уже нет? И как это запретить?
UPD_1:

И в самой проге:

@Override
public boolean delete(Long id) {
    Session session = null;
    boolean flag = true;
    try {
        session = HibernateUtil.getSessionFactory().openSession();
        session.beginTransaction();
        session.delete(new ProductBrand(id));
        session.getTransaction().commit();
    }catch (Exception e) {
        flag = false;
        session.getTransaction().rollback();
        System.out.println(e.getMessage());
        JOptionPane.showMessageDialog(null, e.getMessage(), "Ошибка I/O", JOptionPane.OK_OPTION);
    } finally {
        if (session != null && session.isOpen())
            session.close();
    }
    return flag;
}
READ ALSO
в Java hashTable.hashCode() всегда возвращает 0

в Java hashTable.hashCode() всегда возвращает 0

Есть структура(класс)

418
Получить местоположение [дубликат]

Получить местоположение [дубликат]

На данный вопрос уже ответили:

209
Как из кнопочного телефона с делать камеру [требует правки]

Как из кнопочного телефона с делать камеру [требует правки]

help me пожалуйста я очень долго мучаюсь помогите кто знает

256