嗨,我正在尝试编写我的第一个 Hibernate 程序, 它在实例化 session 工厂时出错。 我正在使用 hibernate 5.0.4 & java 8 & eclipse Luna SR1 (4.4.1) & oracle 11g。
主类是:
public class MainMethod {
public static void main(String[] args) {
SampleClass s = new SampleClass();
s.setId(1);
s.setValue("Value_1");
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(s);
session.getTransaction().commit();
}
}
hibernate.cfg.xml 是
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:mndb11g</property>
<property name="hibernate.connection.username">temp_p</property>
<property name="hibernate.connection.password">temp_p</property>
<property name="connection.pool_size">1</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="hibernate.default_schema">temp_p</property>
<property name="hbm2ddl.auto">create</property>
<property name="show_sql">true</property>
<mapping class="com.h.SampleClass.SampleClass"/>
</session-factory>
</hibernate-configuration>
它给出了一个异常(exception)
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
异常堆栈跟踪是
Exception in thread "main" java.lang.NullPointerException
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl$AggregatedClassLoader.getResources(ClassLoaderServiceImpl.java:173)
at java.util.ServiceLoader$LazyIterator.hasNextService(ServiceLoader.java:348)
at java.util.ServiceLoader$LazyIterator.hasNext(ServiceLoader.java:393)
at java.util.ServiceLoader$1.hasNext(ServiceLoader.java:474)
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.loadJavaServices(ClassLoaderServiceImpl.java:324)
at org.hibernate.integrator.internal.IntegratorServiceImpl.<init>(IntegratorServiceImpl.java:40)
at org.hibernate.boot.registry.BootstrapServiceRegistryBuilder.build(BootstrapServiceRegistryBuilder.java:213)
at org.hibernate.cfg.Configuration.<init>(Configuration.java:119)
at com.h.MainMethod.main(MainMethod.java:19)
谁能帮忙解决这个问题吗? 提前致谢。
最佳答案
发生这种情况的原因有多种。
可能找不到该实体。在您的 hibernate.cfg.xml 文件中,该实体被称为 com.h.SampleClass.SampleClass 请仔细检查类名和包名。
确保将 hibernate 库添加为用户库。不是系统库。 More info
希望这有帮助。
关于java - hibernate创建sessionfactory时出现空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33929944/