簡體   English   中英

創建 sessionfactory 時空指針異常休眠

[英]null pointer exception hibernate on creating sessionfactory

嗨,我正在嘗試編寫我的第一個 Hibernate 程序,它在實例化會話工廠時出錯。 我正在使用 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>

它給出了一個例外

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.cfg.xml 不在您的類路徑中。 如果您使用的是 maven,請將其放在 src/main/resources 中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM