日期:2014-05-18  浏览次数:20709 次

用hibernate3.6.0连接Oracle 11g时出现了buildSessionFactory空指针错误,怎么破?
RT,这是我的hibernate.cfg.xml的配置文件:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>
   <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> 
        <property name="connection.url">jdbc:oracle:thin:@localhost:1521:lhh113</property> 
   <property name="connection.username">system</property> 
   <property name="connection.password">tiger</property> 
        <property name="dialect">org.hibernate.dialect.OracleDialect</property>

        <property name="show_sql">true</property>
        <property name="format_sql">true</property>

        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">update</property>

        <mapping class="model.Student"/>
        <mapping class="model.Teacher"/>
        

    </session-factory>

</hibernate-configuration>

我的Teacher实体类在用sql server测试时没有问题,用annotation配置,但是用Oracle时抛出空指针错误,JUNI测试

@Test
public void test3() {
Teacher t = new Teacher();
t.setT_id(2);
t.setT_name("asd");
t.setT_sal("1");
t.setT_age(2);
t.setT_birthday(new Date());

Configuration c = new Configuration().configure();
SessionFactory sf = c.buildSessionFactory();
Session s = sf.openSession();
s.beginTransaction();
s.save(t);
s.getTransaction().commit();
s.close();
sf.close();
}


错误栈:
hibernate oracle

------解决方案--------------------
11g也是用10g的。 我们那老师是这么说的。 反正我用11g oracle一直用得10g的方言没出错。 你试试看看是不是这问题