Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.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

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
JavaFX桌面应用程序-使用HSQLDB(嵌入式)和Hibernate_Java_Hibernate_Javafx_Hsqldb - Fatal编程技术网

JavaFX桌面应用程序-使用HSQLDB(嵌入式)和Hibernate

JavaFX桌面应用程序-使用HSQLDB(嵌入式)和Hibernate,java,hibernate,javafx,hsqldb,Java,Hibernate,Javafx,Hsqldb,有关于使用HSQLDB、Hibernate和JavaFX的好教程吗。我使用eclipse作为我的IDE。我的项目模型的变量定义如下: @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "PROJECTID") private long projectId; @Column(name = "PROJECTNAME") private final StringProperty projectName;

有关于使用HSQLDB、Hibernate和JavaFX的好教程吗。我使用eclipse作为我的IDE。我的项目模型的变量定义如下:

 @Id
 @GeneratedValue(strategy = GenerationType.AUTO)
 @Column(name = "PROJECTID")
 private long projectId;

 @Column(name = "PROJECTNAME")
 private final StringProperty projectName;

 @Column(name = "PROJECTJIBP")
 private final StringProperty projectJIBP;
这是将Hibernate与JavaFX结合使用的有效方法吗

persistence.xml是:

    <?xml version="1.0" encoding="UTF-8"?>

<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" xmlns="http://java.sun.com/xml/ns/persistence">
  <persistence-unit name="test" transaction-type="RESOURCE_LOCAL">
    <class> handwrittencode.eiar.model.Project</class>
    <properties>
      <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver" />
      <property name="javax.persistence.jdbc.url"    value="jdbc:hsqldb:mem:test" />
      <property name="javax.persistence.jdbc.user" value="sa" />
      <property name="javax.persistence.jdbc.password" value="" />
      <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
      <property name="show_sql" value="true"/>
      <property name="hibernate.temp.use_jdbc_metadata_defaults" value="false"/>
    </properties>
  </persistence-unit>
</persistence>

HandwritenCode.eiar.model.Project
我收到以下错误消息:

  Jun 28, 2014 7:53:27 PM org.hibernate.ejb.HibernatePersistence logDeprecation
WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
Jun 28, 2014 7:53:27 PM org.hibernate.ejb.HibernatePersistence logDeprecation
WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
Jun 28, 2014 7:53:27 PM org.hibernate.ejb.HibernatePersistence logDeprecation
WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
Jun 28, 2014 7:53:27 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
INFO: HHH000204: Processing PersistenceUnitInfo [
    name: test
    ...]
Jun 28, 2014 7:53:27 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.5.Final}
Jun 28, 2014 7:53:27 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Jun 28, 2014 7:53:27 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Jun 28, 2014 7:53:28 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.4.Final}
Jun 28, 2014 7:53:28 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!)
Jun 28, 2014 7:53:28 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000401: using driver [org.hsqldb.jdbcDriver] at URL [jdbc:hsqldb:mem:test]
Jun 28, 2014 7:53:28 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000046: Connection properties: {user=sa}
Jun 28, 2014 7:53:28 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000006: Autocommit mode: false
Jun 28, 2014 7:53:28 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
Jun 28, 2014 7:53:28 PM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.HSQLDialect
Jun 28, 2014 7:53:28 PM org.hibernate.engine.jdbc.internal.LobCreatorBuilder useContextualLobCreation
INFO: HHH000422: Disabling contextual LOB creation as connection was null
Initial SessionFactory creation failed.javax.persistence.PersistenceException: [PersistenceUnit: test] Unable to build Hibernate SessionFactory
Exception in Application constructor
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:367)
    at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Unable to construct Application instance: class handwrittencode.eiar.MainApp
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:884)
    at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:56)
    at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:158)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
    at com.sun.javafx.application.LauncherImpl$7.run(LauncherImpl.java:791)
    at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:335)
    at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:301)
    at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:298)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:298)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39)
    at com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112)
    ... 1 more
Caused by: java.lang.ExceptionInInitializerError
    at handwrittencode.eiar.util.EntityManagerUtil.<clinit>(EntityManagerUtil.java:16)
    at handwrittencode.eiar.MainApp.<init>(MainApp.java:32)
    ... 15 more
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: test] Unable to build Hibernate SessionFactory
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1225)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.access$600(EntityManagerFactoryBuilderImpl.java:119)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:853)
    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 org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
    at handwrittencode.eiar.util.EntityManagerUtil.<clinit>(EntityManagerUtil.java:12)
    ... 16 more
Caused by: org.hibernate.MappingException: Could not determine type for: javafx.beans.property.StringProperty, at table: PROJECT, for columns: [org.hibernate.mapping.Column(projectAddress)]
    at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:336)
    at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:310)
    at org.hibernate.mapping.Property.isValid(Property.java:241)
    at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:496)
    at org.hibernate.mapping.RootClass.validate(RootClass.java:270)
    at org.hibernate.cfg.Configuration.validate(Configuration.java:1358)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1849)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
    ... 24 more
Exception running application handwrittencode.eiar.MainApp
2014年6月28日7:53:27 PM org.hibernate.ejb.HibernatePersistence日志折旧
警告:HH015016:遇到不推荐使用的javax.persistence.spi.PersistenceProvider[org.hibernate.ejb.HibernatePersistence];改用[org.hibernate.jpa.HibernatePersistenceProvider]。
2014年6月28日下午7:53:27 org.hibernate.ejb.HibernatePersistence日志折旧
警告:HH015016:遇到不推荐使用的javax.persistence.spi.PersistenceProvider[org.hibernate.ejb.HibernatePersistence];改用[org.hibernate.jpa.HibernatePersistenceProvider]。
2014年6月28日下午7:53:27 org.hibernate.ejb.HibernatePersistence日志折旧
警告:HH015016:遇到不推荐使用的javax.persistence.spi.PersistenceProvider[org.hibernate.ejb.HibernatePersistence];改用[org.hibernate.jpa.HibernatePersistenceProvider]。
2014年6月28日下午7:53:27 org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
信息:HH000204:正在处理PersistenceUnitInfo[
名称:测试
...]
2014年6月28日下午7:53:27 org.hibernate.Version日志版本
信息:hh000412:Hibernate核心{4.3.5.Final}
2014年6月28日下午7:53:27 org.hibernate.cfg.Environment
信息:HH000206:找不到hibernate.properties
2014年6月28日下午7:53:27 org.hibernate.cfg.Environment buildBytecodeProvider
信息:HH000021:字节码提供程序名称:javassist
2014年6月28日下午7:53:28 org.hibernate.annotations.common.reflection.java.JavaReflectionManager
信息:HCANN000001:Hibernate Commons注释{4.0.4.Final}
2014年6月28日下午7:53:28 org.hibernate.engine.jdbc.connections.internal.driverManager连接提供MPL配置
警告:HH000402:使用Hibernate内置连接池(不用于生产!)
2014年6月28日下午7:53:28 org.hibernate.engine.jdbc.connections.internal.driverManager连接提供者MPL buildCreator
信息:HH000401:在URL[jdbc:hsqldb:mem:test]处使用驱动程序[org.hsqldb.jdbcDriver]
2014年6月28日下午7:53:28 org.hibernate.engine.jdbc.connections.internal.driverManager连接提供者MPL buildCreator
信息:HH000046:连接属性:{user=sa}
2014年6月28日下午7:53:28 org.hibernate.engine.jdbc.connections.internal.driverManager连接提供者MPL buildCreator
信息:HH000006:自动提交模式:错误
2014年6月28日下午7:53:28 org.hibernate.engine.jdbc.connections.internal.driverManager连接提供MPL配置
信息:HH000115:休眠连接池大小:20(最小值=1)
2014年6月28日下午7:53:28 org.hibernate.dialogue.dialogue
信息:HH000400:使用方言:org.hibernate.dialogue.hsqlDialogue
2014年6月28日下午7:53:28 org.hibernate.engine.jdbc.internal.LobCreatorBuilder UseContexturationAllobCreation
信息:HH000422:由于连接为空,因此禁用上下文LOB创建
初始SessionFactory创建失败。javax.persistence.PersistenceException:[PersistenceUnit:test]无法构建Hibernate SessionFactory
应用程序构造函数中的异常
java.lang.reflect.InvocationTargetException
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:483)
位于com.sun.javafx.application.LaunchImpl.launchApplicationWithArgs(LaunchImpl.java:367)
位于com.sun.javafx.application.LaunchImpl.launchApplication(LaunchImpl.java:305)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:483)
位于sun.launcher.launchelper$FXHelper.main(launchelper.java:767)
原因:java.lang.RuntimeException:无法构造应用程序实例:类handwrittencode.eiar.MainApp
位于com.sun.javafx.application.LaunchImpl.launchApplication1(LaunchImpl.java:884)
在com.sun.javafx.application.launchempl.access$000(launchempl.java:56)
位于com.sun.javafx.application.launchempl$1.run(launchempl.java:158)
运行(Thread.java:745)
原因:java.lang.reflect.InvocationTargetException
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:408)
位于com.sun.javafx.application.launchempl$7.run(launchempl.java:791)
位于com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:335)
位于com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:301)
位于com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:298)
位于java.security.AccessController.doPrivileged(本机方法)
位于com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:298)
位于com.sun.glass.ui.invokelateDispatcher$Future.run(invokelateDispatcher.java:95)
在com.sun.glass.ui.win.WinApplication.\u runLoop(本机方法)
com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39)
位于com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112)
... 还有一个
原因:java.lang.ExceptionInInitializeError
位于handrittencode.eiar.util.EntityManagerUtil.(EntityManagerUtil.java:16)
位于handrittencode.eiar.MainApp.(MainApp.java:32)
...
package handwrittencode.eiar.model;

import java.time.LocalDate;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

import handwrittencode.eiar.util.LocalDateAdapter;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;


@Entity
@Table(name = "PROJECT")
public class Project {


     @Id
     @GeneratedValue(strategy = GenerationType.AUTO)
     @Column(name = "PROJECTID")
     private long projectId;

     private final StringProperty projectName;
     private final StringProperty projectJIBP;
     private final StringProperty projectState;
     private final StringProperty projectAddress;
     private final StringProperty projectManager;

     private final ObjectProperty<LocalDate> projectCreated;
     private final ObjectProperty<LocalDate> projectStart;
     private final ObjectProperty<LocalDate> projectEnd;


     public Project()
     {
         this(null,null,null,null,null);
     }

     public Project(String projectName, String projectJIBP, String projectState, String projectAddress, String projectManager)
     {
         this.projectName =  new SimpleStringProperty(projectName);
         this.projectJIBP =  new SimpleStringProperty(projectJIBP);
         this.projectState =  new SimpleStringProperty(projectState);
         this.projectAddress = new SimpleStringProperty(projectAddress);
         this.projectManager = new SimpleStringProperty(projectManager);


         this.projectCreated =  new SimpleObjectProperty<LocalDate>(LocalDate.of(1999, 2, 21));
         this.projectStart = new SimpleObjectProperty<LocalDate>(LocalDate.of(1999, 2, 21));
         this.projectEnd = new SimpleObjectProperty<LocalDate>(LocalDate.of(1999, 2, 21));




     }


     @Column(name = "PROJECTNAME")
     public String getProjectName() {
            return projectName.get();
     }

     public void setProjectName(String projectName) {
            this.projectName.set(projectName);
     }

     public StringProperty projectNameProperty() {
            return this.projectName;
     }

     /**/

     @Column(name = "PROJECTJIBP")
     public String getProjectJIBP(){
         return projectJIBP.get();
     }

     public void setProjectJIBP(String projectJIBP) {
            this.projectJIBP.set(projectJIBP);
     }

     public StringProperty projectJIBPProperty() {
            return this.projectJIBP;
     }

   /**/

     @Column(name = "PROJECTSTATE")
     public String getProjectState(){
         return projectState.get();
     }

     public void setProjectState(String projectState) {
            this.projectState.set(projectState);
     }

     public StringProperty projectStateProperty() {
            return this.projectState;
     }

     /**/

     @Column(name = "PROJECTADDRESS")
     public String getProjectAddress(){
         return projectAddress.get();
     }

     public void setProjectAddress(String projectAddress) {
            this.projectAddress.set(projectAddress);
     }

     public StringProperty projectAddressProperty() {
            return this.projectAddress;
     }

     /**/

     @Column(name = "PROJECTMANAGER")
     public String getProjectManager(){
         return projectManager.get();
     }

     public void setProjectManager(String projectManager) {
            this.projectManager.set(projectManager);
     }

     public StringProperty projectManagerProperty() {
            return this.projectManager;
     }


     /**/

     @XmlJavaTypeAdapter(LocalDateAdapter.class)
        public LocalDate getProjectCreated() {
            return projectCreated.get();
        }

        public void setProjectCreated(LocalDate projectCreated) {
            this.projectCreated.set(projectCreated);
        }

        public ObjectProperty<LocalDate> projectCreatedProperty() {
            return projectCreated;
        }


     /**/

     @XmlJavaTypeAdapter(LocalDateAdapter.class)
        public LocalDate getProjectStart() {
            return projectStart.get();
        }

        public void setProjectStart(LocalDate projectStart) {
            this.projectStart.set(projectStart);
        }

        public ObjectProperty<LocalDate> projectStartProperty() {
            return projectStart;
        }

      /**/

        @XmlJavaTypeAdapter(LocalDateAdapter.class)
        public LocalDate getProjectEnd() {
            return projectEnd.get();
        }

        public void setProjectEnd(LocalDate projectEnd) {
            this.projectEnd.set(projectEnd);
        }

        public ObjectProperty<LocalDate> projectEndProperty() {
            return projectEnd;
        }


}
private final StringProperty projectName;

@Column(name = "PROJECTNAME")
public final String getProjectName() {
    return projectName.get();
}

public final void setProjectName(String projectName) {
    this.projectName.set(projectName);
}

public StringProperty projectNameProperty() {
    return projectName;
}