我正在尝试使用Hibernate创建一个简单的应用程序,但我收到此错误并且不确定原因。
我正在使用IntelliJ,制作Maven项目并从数据库生成模型:
这是我的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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.nemanjagajic</groupId>
<artifactId>FacultyJPA</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.15.Final</version>
</dependency>
</dependencies>
</project>
的persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="FacultyJPAPersistenceUnit">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>model.Student</class>
<properties>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/faculty"/>
<property name="hibernate.connection.autocommit" value="false"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="nemanja96"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
<property name="hibernate.connection.CharSet" value="utf8"/>
<property name="hibernate.connection.characterEncoding" value="utf8"/>
<property name="hibernate.connection.useUnicode" value="true"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
基本的JPAUtil:
package utils;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class JPAUtil {
static EntityManagerFactory factory;
static {
factory = Persistence.createEntityManagerFactory("FacultyJPAPersistenceUnit");
}
public static EntityManager getEntityManager() {
return factory.createEntityManager();
}
}
当我运行它时
public class Application {
public static void main(String[] args) {
Student student = new Student();
student.setId(1);
student.setName("John");
student.setLastName("Dee");
EntityManager em = JPAUtil.getEntityManager();
em.persist(student);
}
}
我收到上述错误。
不确定我做错了什么,似乎无法使用hibernate配置简单的项目。如果有人可以告诉我这是什么问题,或者通过我使用hibernate创建简单项目的一些教程的链接,这个教程没有过时且正在工作。
答案 0 :(得分:0)
您能否提供异常/错误的堆栈跟踪?
查看堆栈跟踪...如果在库中的对象上调用方法时出现异常,则在编译和运行时很可能使用库的单独版本。确保两个地方都有正确的版本。
如果在由您创建的类实例化的对象上调用方法时出现异常,那么您的构建过程似乎有问题。确保在编译时更新实际运行的类文件。
即
检查包含该方法的类是否在类路径中。
检查您是否添加了新版本的JAR,并且该方法兼容。