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