Я хочу управлять CRUD в списке с помощью Hibernate.Это хорошая практика? - PullRequest
0 голосов
/ 28 февраля 2012

Я хочу сохранить список и обновить его изменения в базе данных.
В основном,
чтобы сохранить - я перебираю все объекты и сохраняю каждый.
Для удаления - каждый раз, когда объект удаляется, я сохраняю копию этого объекта для последующего хранения в другом списке. Когда я сохраняю, я также повторяю его и удаляю эти элементы.

private boolean saveAll() {
    Session session = null;
    boolean successful = false;
    try {
        session = sessionFactory.openSession();
        session.beginTransaction();

        for (myObject myO : myObjectsList) {
            session.save(myO);
        }

        for (myObject removedObject : toBeRemovedList) {
            session.delete(removedObject);
        }

        session.getTransaction().commit();
        successful = true;
    } catch (HibernateException e) {
        successful = false;
    } finally {
        if (session != null && session.isOpen()) {
            session.close();
        }
    }

    return successful;
}

Теперь я планирую назвать это так:

if (saveAll()){
    toBeRemovedList.clear()
}

Есть комментарии?

Спасибо.

1 Ответ

1 голос
/ 28 февраля 2012

Вы ничего не можете сделать с помощью сохранения.Но функциональность удаления может быть улучшена с помощью следующих HQL,

Query q = createQuery("delete from YourObjectName where id in (:idList) ");
q.setParameterList("idList", idList);
q.executeUpdate();

. Вы можете найти документы java здесь .

Здесь будет только один запросвыполняется для удаления всех элементов в списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...