当一切都应该干净时,为什么它会向我发送未关闭的连接错误?

Why is it sending me an unclosed connection error when everything should be clean?

我有一个基本的一对一映射。当我第一次尝试使用外键提取信息时,我 运行 程序出现错误 message:ERROR:检测到连接泄漏:关闭池时有 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();
    }

您正在关闭会话,但并未关闭已建立的数据库连接。因此连接泄漏。请关闭数据库连接。这将解决问题。

花絮是在您上面的代码中,将所有语句都放在一个事务中。