Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
Mysql 在JavaFX环境中使用JPA_Mysql_Hibernate_Jpa_Intellij Idea - Fatal编程技术网

Mysql 在JavaFX环境中使用JPA

Mysql 在JavaFX环境中使用JPA,mysql,hibernate,jpa,intellij-idea,Mysql,Hibernate,Jpa,Intellij Idea,我试图使用JPA来处理持久性逻辑。为此,我想我需要persistence.xml,如下所示: <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persisten

我试图使用JPA来处理持久性逻辑。为此,我想我需要persistence.xml,如下所示:

    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
             version="2.0">
    <persistence-unit name="BookKeeperUnit" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <properties>
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
            <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/Gamer"/>
            <property name="hibernate.connection.username" value="UserName"/>
            <property name="hibernate.connection.password" value="password"/>
            <property name="hibernate.archive.autodetection" value="class" />
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
        </properties>
    </persistence-unit>
</persistence>
至于DAO类:

    public class TestEntityManager {
    EntityManagerFactory entityManagerFactory =   Persistence.createEntityManagerFactory("BookKeeperUnit");
    EntityManager em = entityManagerFactory.createEntityManager();
    public ApplicationUser getAppUserByUserName(String userName){
        em.getTransaction().begin();
        ApplicationUser appUser = em.find(ApplicationUser.class, userName);
        em.getTransaction().commit();
        em.close();
        entityManagerFactory.close();
        return appUser;
    }
}
但我犯了一个我不太明白的错误:

    jul 08, 2014 8:57:35 EM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
INFO: HHH000204: Processing PersistenceUnitInfo [
    name: BookKeeperUnit
    ...]
jul 08, 2014 8:57:35 EM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.5.Final}
jul 08, 2014 8:57:35 EM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
jul 08, 2014 8:57:35 EM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
jul 08, 2014 8:57:36 EM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.4.Final}
jul 08, 2014 8:57:36 EM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!)
jul 08, 2014 8:57:36 EM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/Gamer]
jul 08, 2014 8:57:36 EM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000046: Connection properties: {user=UserName, password=****}
jul 08, 2014 8:57:36 EM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000006: Autocommit mode: false
jul 08, 2014 8:57:36 EM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
jul 08, 2014 8:57:36 EM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
jul 08, 2014 8:57:36 EM org.hibernate.engine.jdbc.internal.LobCreatorBuilder useContextualLobCreation
INFO: HHH000423: Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4
Exception in Application start method
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:403)
    at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:47)
    at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115)
    at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
    at org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:936)
    at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:824)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3788)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3742)
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1410)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1844)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843)
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:397)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842)
    at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:75)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:78)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
    at appEntityManager.TestEntityManager.<init>(TestEntityManager.java:14)
    at sample.Controller.<init>(Controller.java:13)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at java.lang.Class.newInstance(Class.java:374)
    at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:49)
    at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:731)
        at
javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:775)
        at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:180)
        at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:563)
        at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2348)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2164)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2061)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2778)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2757)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2743)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2730)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2719)
        at sample.Main.start(Main.java:13)
        at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:319)
        at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:216)
        at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:179)
        at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:176)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:176)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:76)
2014年7月8日8:57:35 EM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
信息:HH000204:正在处理PersistenceUnitInfo[
姓名:BookKeepuronit
...]
2014年7月8日8:57:35 EM org.hibernate.Version日志版本
信息:hh000412:Hibernate核心{4.3.5.Final}
2014年7月8日8:57:35 EM org.hibernate.cfg.Environment
信息:HH000206:找不到hibernate.properties
2014年7月8日8:57:35 EM org.hibernate.cfg.Environment buildBytecodeProvider
信息:HH000021:字节码提供程序名称:javassist
2014年7月8日8:57:36 EM org.hibernate.annotations.common.reflection.java.JavaReflectionManager
信息:HCANN000001:Hibernate Commons注释{4.0.4.Final}
2014年7月8日8:57:36 EM org.hibernate.engine.jdbc.connections.internal.driverManager连接提供MPL配置
警告:HH000402:使用Hibernate内置连接池(不用于生产!)
2014年7月8日8:57:36 EM org.hibernate.engine.jdbc.connections.internal.driverManager连接提供MPL buildCreator
信息:HH000401:在URL[jdbc:mysql://localhost:3306/Gamer]
2014年7月8日8:57:36 EM org.hibernate.engine.jdbc.connections.internal.driverManager连接提供MPL buildCreator
信息:HH000046:连接属性:{user=UserName,password=**}
2014年7月8日8:57:36 EM org.hibernate.engine.jdbc.connections.internal.driverManager连接提供MPL buildCreator
信息:HH000006:自动提交模式:错误
2014年7月8日8:57:36 EM org.hibernate.engine.jdbc.connections.internal.driverManager连接提供MPL配置
信息:HH000115:休眠连接池大小:20(最小值=1)
2014年7月8日8:57:36 EM org.hibernate.dialogue.dialogue
信息:HH000400:使用方言:org.hibernate.dialogue.mysqldialogue
2014年7月8日8:57:36 EM org.hibernate.engine.jdbc.internal.LobCreatorBuilder使用上下文AllobCreation
信息:HH000423:禁用上下文LOB创建,因为JDBC驱动程序报告JDBC版本[3]小于4
应用程序启动方法中的异常
线程“main”java.lang.RuntimeException中的异常:应用程序启动方法中的异常
位于com.sun.javafx.application.LaunchImpl.launchApplication1(LaunchImpl.java:403)
访问com.sun.javafx.application.launchempl.access$000(launchempl.java:47)
位于com.sun.javafx.application.launchempl$1.run(launchempl.java:115)
运行(Thread.java:744)
原因:java.lang.NoSuchMethodError:javax.persistence.Table.indexes()[Ljavax/persistence/Index;
位于org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:936)
位于org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:824)
位于org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3788)
位于org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3742)
位于org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1410)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1844)
位于org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
位于org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843)
位于org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:397)
位于org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842)
在org.hibernate.jpa.HibernatePersistenceProvider.createEntityManager工厂(HibernatePersistenceProvider.java:75)
位于javax.persistence.persistence.createEntityManagerFactory(persistence.java:78)
位于javax.persistence.persistence.createEntityManagerFactory(persistence.java:54)
TestEntityManager.TestEntityManager.(TestEntityManager.java:14)
位于sample.Controller.(Controller.java:13)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:526)
位于java.lang.Class.newInstance(Class.java:374)
位于sun.reflect.misc.reflectil.newInstance(reflectil.java:49)
在javafx.fxml.fxmloader$ValueElement.processAttribute(fxmloader.java:731)中
在
fxml.FXMLLoader$InstanceDecrationElement.processAttribute(FXMLLoader.java:775)
在javafx.fxml.fxmloader$Element.processStartElement(fxmloader.java:180)
在javafx.fxml.fxmloader$ValueElement.processStartElement(fxmloader.java:563)
在javafx.fxml.fxmloader.processStartElement(fxmloader.java:2348)
在javafx.fxml.fxmloader.load(fxmloader.java:2164)
在javafx.fxml.fxmloader.load(fxmloader.java:2061)
在javafx.fxml.fxmloader.load(fxmloader.java:2778)
在javafx.fxml.fxmloader.load(fxmloader.java:2757)
在javafx.fxml.fxmloader.load(fxmloader.java:2743)
在javafx.fxml.fxmloader.load(fxmloader.java:2730)
在javafx.fxml.fxmloader.load(fxmloader.java:2719)
在sample.Main.start处(Main.java:13)
位于com.sun.javafx.application.launchempl$5.run(launchempl.java:319)
位于com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:216)
位于com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:179)
位于com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:176)
位于java.security.AccessController.doPrivileged(本机方法)
在com.sun.javafx.application.platformip上
    jul 08, 2014 8:57:35 EM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
INFO: HHH000204: Processing PersistenceUnitInfo [
    name: BookKeeperUnit
    ...]
jul 08, 2014 8:57:35 EM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.5.Final}
jul 08, 2014 8:57:35 EM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
jul 08, 2014 8:57:35 EM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
jul 08, 2014 8:57:36 EM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.4.Final}
jul 08, 2014 8:57:36 EM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!)
jul 08, 2014 8:57:36 EM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/Gamer]
jul 08, 2014 8:57:36 EM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000046: Connection properties: {user=UserName, password=****}
jul 08, 2014 8:57:36 EM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000006: Autocommit mode: false
jul 08, 2014 8:57:36 EM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
jul 08, 2014 8:57:36 EM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
jul 08, 2014 8:57:36 EM org.hibernate.engine.jdbc.internal.LobCreatorBuilder useContextualLobCreation
INFO: HHH000423: Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4
Exception in Application start method
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:403)
    at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:47)
    at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115)
    at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
    at org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:936)
    at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:824)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3788)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3742)
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1410)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1844)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843)
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:397)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842)
    at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:75)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:78)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
    at appEntityManager.TestEntityManager.<init>(TestEntityManager.java:14)
    at sample.Controller.<init>(Controller.java:13)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at java.lang.Class.newInstance(Class.java:374)
    at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:49)
    at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:731)
        at
javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:775)
        at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:180)
        at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:563)
        at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2348)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2164)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2061)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2778)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2757)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2743)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2730)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2719)
        at sample.Main.start(Main.java:13)
        at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:319)
        at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:216)
        at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:179)
        at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:176)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:176)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:76)