Почему он посылает мне сообщение об ошибке незакрытого соединения, когда все должно быть чисто? - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть однозначное сопоставление.Когда я пытаюсь извлечь информацию с помощью внешнего ключа при первом запуске программы, я получаю сообщение об ошибке: ОШИБКА: обнаружена утечка соединения: есть 1 незакрытые соединения при закрытии пула jdbc: mysql: // localhost: 3306 / novabaza?useSSL = false & serverTimezone = UTC Исключение в потоке "main" java.lang.NullPointerException в oto_otm_mtm.Blogic.main (Blogic.java:46).Второй раз, когда я запускаю программу, она всегда проходит гладко.

Попытался закрыть сеанс, затем начать новый, потому что я думал, что проблема в том, что я пытаюсь получить данные из несуществующей базы.Ничего не изменилось.

         try {

    session.beginTransaction();
    session.save(student);
    session.save(laptop);
    session.getTransaction().commit();
            session.close();


    session = sf.getCurrentSession();
    session.beginTransaction();

    Student myStudent = session.get(Student.class, 2);
    lpa = myStudent.getLaptop(); /*Eclipse says that the problem is 
                                       here though i dont understand why.*/

    System.out.println(lpa.getVrsta());

    session.close();

    } finally {
        sf.close();
    }

1 Ответ

0 голосов
/ 29 декабря 2018

Вы закрываете сеанс, но не закрываете установленное соединение с базой данных.Отсюда и утечка соединения.Пожалуйста, закройте соединение с базой данных.Это решит проблему.

В вышеприведенном коде есть загвоздка, чтобы все ваши заявления были в одной транзакции.

...