Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用EntityManagerFactory时JavaFX窗口停止工作_Java_Jpa_Javafx_Entitymanager - Fatal编程技术网

调用EntityManagerFactory时JavaFX窗口停止工作

调用EntityManagerFactory时JavaFX窗口停止工作,java,jpa,javafx,entitymanager,Java,Jpa,Javafx,Entitymanager,我正在学习javafx和jpa,当我试图从视图上的一个动作连接数据库时,应用程序停止工作。 我发现调用EntityManagerFactory时应用程序停止工作,我尝试以线程的形式启动save to db函数,因此视图没有停止工作,但数据从未发送到db。我相信没有必要运行它,因为线程肯定是另一个问题,所以我删除了线程。 当我运行该功能时,终端会发出以下消息: set 05, 2019 9:22:59 AM javafx.fxml.FXMLLoader$ValueElement proce

我正在学习javafx和jpa,当我试图从视图上的一个动作连接数据库时,应用程序停止工作。 我发现调用EntityManagerFactory时应用程序停止工作,我尝试以线程的形式启动save to db函数,因此视图没有停止工作,但数据从未发送到db。我相信没有必要运行它,因为线程肯定是另一个问题,所以我删除了线程。 当我运行该功能时,终端会发出以下消息:

    set 05, 2019 9:22:59 AM javafx.fxml.FXMLLoader$ValueElement processValue
        WARNING: Loading FXML document with JavaFX API of version 11.0.1 by JavaFX runtime of version 8.0.221
        set 05, 2019 9:23:01 AM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
        INFO: HHH000204: Processing PersistenceUnitInfo [
            name: sistema
            ...]
        set 05, 2019 9:23:01 AM org.hibernate.Version logVersion
        INFO: HHH000412: Hibernate Core {5.2.12.Final}
        set 05, 2019 9:23:01 AM org.hibernate.cfg.Environment <clinit>
        INFO: HHH000206: hibernate.properties not found
        set 05, 2019 9:23:01 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
        INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
        set 05, 2019 9:23:02 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
        WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
        set 05, 2019 9:23:02 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
        INFO: HHH10001005: using driver [com.mysql.cj.jdbc.Driver] at URL [jdbc:mysql://localhost/hibernate?useTimezone=true&serverTimezone=UTC]
        set 05, 2019 9:23:02 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
        INFO: HHH10001001: Connection properties: {user=root, password=****}
        set 05, 2019 9:23:02 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
        INFO: HHH10001003: Autocommit mode: false
        set 05, 2019 9:23:02 AM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init>
        INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
视图:


我的控制器

public Bairro salvar(Bairro bairro) {
    emf = Persistence.createEntityManagerFactory("sistema");
    em = emf.createEntityManager();

    try {
        em.getTransaction().begin();
        em.persist(bairro);
        em.getTransaction().commit();
    } catch (Exception ex) {
        System.out.println(ex);
    }

    return bairro;
}
调试应用程序时,我发现线程正在变成“mysql cj放弃连接清理”,并一直运行,直到我关闭该进程


对于
JavaFX
应用程序,您的项目结构不正确。您缺少测试扩展应用程序。您的Bairro控制器看起来也不正确。test不是javafx类,它只是运行与我在javafx中运行的代码相同的static void main的一个示例,该代码会使应用程序崩溃,请参见:
public Bairro salvar(Bairro bairro) {
    emf = Persistence.createEntityManagerFactory("sistema");
    em = emf.createEntityManager();

    try {
        em.getTransaction().begin();
        em.persist(bairro);
        em.getTransaction().commit();
    } catch (Exception ex) {
        System.out.println(ex);
    }

    return bairro;
}