получить ошибку от session.save - PullRequest
0 голосов
/ 02 июня 2018

Я создал метод для сохранения своих объектов в спящем режиме.Но при сохранении я получил ошибку от session.save(ob);

org.hibernate.HibernateException: незаконно попытался связать прокси с двумя открытыми сеансами

В чем ошибкамоего кода.

public class HibernateSession {

    public static Session getSession() {
        Session session = Connection.NewHibernateUtil.getSessionFactory().openSession();
        return session;
    }

    public static void save(Session session, Object ob) {
        Transaction transaction = session.beginTransaction();
        session.save(ob);
        session.flush();
        transaction.commit();
        session.close();
    }
}

1 Ответ

0 голосов
/ 02 июня 2018

Ошибка объясняется само собой.

Недопустимая попытка связать прокси с двумя открытыми сеансами .

Избегать использования нескольких открытых сеансов.Создайте переменную сеанса в верхней части вашего класса и используйте ее везде.

Измените метод сохранения следующим образом, чтобы убедиться, что сеанс открыт.

public static void save(Session session, Object ob) {
    if(!session.isOpen){
        session = getSession();
    }
    ....
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...