Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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
Java JPA、MySQL、Hibernate&;马文骨架_Java_Mysql_Hibernate_Maven 2_Jpa - Fatal编程技术网

Java JPA、MySQL、Hibernate&;马文骨架

Java JPA、MySQL、Hibernate&;马文骨架,java,mysql,hibernate,maven-2,jpa,Java,Mysql,Hibernate,Maven 2,Jpa,我一直在尝试使用JPA、MySQL、Hibernate和Maven运行一个简单的框架应用程序(并提交给DB),但是我遇到了一些问题 下面列出了我的两个普通类:pom.xml和META-INF/persistence.xml 我可以毫无问题地构建这个项目(mvn clean install),但是运行它(mvn exec:java-Dexec.mainClass=com.foo.HelloWorld-X)会导致异常,如下StackTrace所示 任何帮助都将不胜感激 堆栈跟踪: org.apach

我一直在尝试使用JPA、MySQL、Hibernate和Maven运行一个简单的框架应用程序(并提交给DB),但是我遇到了一些问题

下面列出了我的两个普通类:pom.xml和META-INF/persistence.xml

我可以毫无问题地构建这个项目(mvn clean install),但是运行它(mvn exec:java-Dexec.mainClass=com.foo.HelloWorld-X)会导致异常,如下StackTrace所示

任何帮助都将不胜感激

堆栈跟踪:

org.apache.maven.lifecycle.LifecycleExecutionException: An exception occured while executing the Java class. null at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) Caused by: org.apache.maven.plugin.MojoExecutionException: An exception occured while executing the Java class. null at org.codehaus.mojo.exec.ExecJavaMojo.execute(ExecJavaMojo.java:346) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) ... 17 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:291) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.NoSuchMethodError: org.hibernate.event.PreInsertEvent.getSource()Lorg/hibernate/engine/SessionImplementor; at org.hibernate.validator.event.ValidateEventListener.onPreInsert(ValidateEventListener.java:167) at org.hibernate.action.EntityIdentityInsertAction.preInsert(EntityIdentityInsertAction.java:142) at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:65) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279) at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:321) at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130) at org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:154) at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:110) at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:61) at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:646) at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:620) at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:624) at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:212) at com.foo.HelloWorld.create(HelloWorld.java:32) at com.foo.HelloWorld.main(HelloWorld.java:11) ... 6 more org.apache.maven.lifecycle.LifecycleExecutionException:执行Java类时发生异常。无效的 位于org.apache.maven.lifecycle.DefaultLifecycleExecutor.ExecuteGals(DefaultLifecycleExecutor.java:719) 位于org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569) 位于org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539) 位于org.apache.maven.lifecycle.DefaultLifecycleExecutor.ExecuteGalandReadLifeures(DefaultLifecycleExecutor.java:387) 位于org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) 位于org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 位于org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) 位于org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 位于org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中 位于java.lang.reflect.Method.invoke(Method.java:597) 位于org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 位于org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 位于org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 位于org.codehaus.classworlds.Launcher.main(Launcher.java:375) 原因:org.apache.maven.plugin.MojoExecutionException:执行Java类时发生异常。无效的 位于org.codehaus.mojo.exec.ExecJavaMojo.execute(ExecJavaMojo.java:346) 位于org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 位于org.apache.maven.lifecycle.DefaultLifecycleExecutor.ExecuteGals(DefaultLifecycleExecutor.java:694) ... 还有17个 原因:java.lang.reflect.InvocationTargetException 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中 位于java.lang.reflect.Method.invoke(Method.java:597) 位于org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:291) 运行(Thread.java:619) 原因:java.lang.NoSuchMethodError:org.hibernate.event.PreInsertEvent.getSource()Lorg/hibernate/engine/SessionImplementor; 位于org.hibernate.validator.event.ValidateEventListener.onPreInsert(ValidateEventListener.java:167) 在org.hibernate.action.EntityIdentityInsertAction.preInsert(EntityIdentityInsertAction.java:142) 在org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:65) 位于org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279) 位于org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:321) 位于org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204) 位于org.hibernate.event.def.AbstractSaveEventListener.SaveWithGenerateId(AbstractSaveEventListener.java:130) 位于org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:154) 位于org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:110) 位于org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:61) 位于org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:646) 位于org.hibernate.impl.SessionImpl.persist(SessionImpl.java:620) 位于org.hibernate.impl.SessionImpl.persist(SessionImpl.java:624) 位于org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:212) 在com.foo.HelloWorld.create上(HelloWorld.java:32) 位于com.foo.HelloWorld.main(HelloWorld.java:11) ... 还有6个 我有以下两门课: 要存储的实体

package com.foo; import java.io.Serializable; import javax.persistence.Basic; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Message { @Id @GeneratedValue private int id; @Basic private String message; public Message() {} public Message(String message) { this.message = message; } public String toString() { return "Greeting id=" + id + ", message=" + message; } } 包com.foo; 导入java.io.Serializable; 导入javax.persistence.Basic; 导入javax.persistence.Entity; 导入javax.persistence.GeneratedValue; 导入javax.persistence.Id; @实体 公共类消息{ @身份证 @生成值 私有int-id; @基本的 私有字符串消息; 公共消息(){} 公共消息(字符串消息){ this.message=消息; } 公共字符串toString(){ 返回“问候id=“+id+”,message=“+message”; } } 申请书:

package com.foo; public class HelloWorld { private javax.persistence.EntityManagerFactory emf; private javax.persistence.EntityManager em; private String PERSISTENCE_UNIT_NAME = "hello-world"; public static void main(String[] args) { HelloWorld hello = new HelloWorld(); hello.initEntityManager(); hello.create(); // hello.read(); hello.closeEntityManager(); } private void initEntityManager() { emf = javax.persistence.Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME); em = emf.createEntityManager(); } private void closeEntityManager() { em.close(); emf.close(); } private void create() { em.getTransaction().begin(); Message hello = new Message("hello world"); Message bye = new Message("goodbye, world"); Message[] messages = new Message[] {hello, bye}; for (Message m : messages) { em.persist(m); } em.getTransaction().commit(); } // private void read() { // Message m = (Message)em.createQuery("select m from Message m").getSingleResult(); // System.out.println("Query returned: " + m); // } } 包com.foo; 公共类HelloWorld{ 私有javax.persistence.EntityManagerFactory emf; 私有javax.persistence.EntityManager em; 私有字符串持久性\u单元\u NAME=“hello world”; 公共静态void main(字符串[]args){ HelloWorld hello=新HelloWorld(); hello.initEntityManager(); hello.create(); //您好,read(); hello.closeEntityManager(); } 私有void initEntityManager(){ emf=javax.persistence.persistence.createEntityManagerFactory(persistence\u UNIT\u NAME); em=电动势

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

 <modelVersion>4.0.0</modelVersion>
 <groupId>com.treocht.hibernate.tutorial</groupId>
 <artifactId>hibernate-tutorial</artifactId>
 <version>1.0.0-SNAPSHOT</version>
 <name>First Hibernate Tutorial</name>


 <dependencies>

  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-core</artifactId>
   <version>3.3.2.GA</version>
   <type>jar</type>
   <scope>compile</scope>
  </dependency>
  <dependency>
   <groupId>javax.persistence</groupId>
   <artifactId>persistence-api</artifactId>
   <version>1.0</version>
   <type>jar</type>
   <scope>compile</scope>
  </dependency>

  <dependency>
   <groupId>commons-logging</groupId>
   <artifactId>commons-logging</artifactId>
   <version>1.0.4</version>
  </dependency>

  <dependency>
   <groupId>hsqldb</groupId>
   <artifactId>hsqldb</artifactId>
   <version>1.8.0.7</version>
  </dependency>

  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate</artifactId>
   <version>3.2.2.ga</version>
  </dependency>

  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-annotations</artifactId>
   <version>3.2.1.ga</version>
  </dependency>

  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-entitymanager</artifactId>
   <version>3.2.1.ga</version>
  </dependency>

  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-tools</artifactId>
   <version>3.2.0.beta9a</version>
  </dependency>

  <dependency>
   <groupId>c3p0</groupId>
   <artifactId>c3p0</artifactId>
   <version>0.9.1</version>
  </dependency>
  <dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-api</artifactId>
   <version>1.6.1</version>
   <type>jar</type>
   <scope>compile</scope>
  </dependency>
  <dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.13</version>
   <type>jar</type>
   <scope>compile</scope>
  </dependency>
 </dependencies>

 <build>
  <!--
   we dont want the version to be part of the generated war file name
  -->
  <finalName>${artifactId}</finalName>

  <pluginManagement>
   <plugins>
    <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-compiler-plugin</artifactId>
     <configuration>
      <source>1.6</source>
      <target>1.6</target>
     </configuration>
    </plugin>
   </plugins>
  </pluginManagement>
 </build>

</project>
<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 persistence_1_0.xsd" version="1.0"> <persistence-unit name="hello-world" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>com.foo.Message</class> <properties> <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/my_db" /> <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" /> <property name="hibernate.connection.password" value="password" /> <property name="hibernate.connection.username" value="username" /> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence>
<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-entitymanager</artifactId>
  <version>3.4.0.GA</version><!-- for JPA 1.0 -->
</dependency>
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.6.1</version>
    </dependency>
  </dependencies>
</dependencyManagement>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.company.hibernate.tutorial</groupId> <artifactId>hibernate-tutorial</artifactId> <version>1.0.0-SNAPSHOT</version> <name>Hibernate Tutorial</name> <repositories> <repository> <id>JBoss repository</id> <url>http://repository.jboss.com/maven2/</url> </repository> </repositories> <dependencies> <!-- Hibernate framework --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>3.4.0.GA</version><!-- for JPA 1.0 --> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.13</version> <type>jar</type> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-jdk14</artifactId> <version>1.6.1</version> <type>jar</type> <scope>compile</scope> </dependency> </dependencies> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </pluginManagement> </build> <dependencyManagement> <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.1</version> <type>jar</type> <scope>compile</scope> </dependency> </dependencies> </dependencyManagement> </project>