HHH000099: произошел сбой утверждения (это может указывать на ошибку в режиме гибернации, но, скорее всего, из-за небезопасного использования сеанса)

#java #hibernate #orm

Вопрос:

У меня следующая ошибка, и я пытаюсь выяснить причину. Насколько я знаю, это вызвано не гибернацией, а тем, как я управляю/использую вызовы методов (временный экземпляр сущности, сохранение, отсоединение, а затем объединение). Я не понимаю, почему возникает эта проблема. Я был бы очень признателен за ваше объяснение.

Ошибка: HHH000099: произошел сбой утверждения (это может указывать на ошибку в режиме гибернации, но, скорее всего, из-за небезопасного использования сеанса): org.hibernate.AssertionFailure: возможный не поточно-безопасный доступ к сеансу

К вашему сведению: Версия Java: 1.8 Версия гибернации: https://hibernate.org/orm/releases/5.5/

 package lk.mysite.demo.orm;

import lk.mysite.demo.orm.entity.Customer;
import lk.mysite.demo.orm.util.HibernateUtil;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

public class ContextDemo16 {
    public static void main(String[] args) {
        try (SessionFactory sf = HibernateUtil.getSessionFactory();
             Session session = sf.openSession();) {
            session.beginTransaction();

            Customer customer = new Customer(5, "John", "New York");
            session.save(customer);
            session.detach(customer);
            session.merge(customer);
            // prompt an error

            session.getTransaction().commit();
        } catch (HibernateException e) {
            e.printStackTrace();
        }

    }
}