配置文件如下 <persistence-unit name="hib_oracle" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" /> <property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver" /> <property name="hibernate.connection.url" value="jdbc:oracle:thin:@localhost:1521:orcl" /> <property name="hibernate.connection.username" value="scott" /> <property name="hibernate.connection.password" value="tiger" /> </properties> </persistence-unit> 程序运行过程中 EntityManagerFactory emf = Persistence.createEntityManagerFactory("hib_oracle"); 会抛出如下异常 Exception in thread "main" java.lang.NullPointerException at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:169) at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2833) at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2829) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1840) at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:902) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32) at com.jpa.demo.Test.main(Test.java:11) 跟踪源代码 发现其 properties.putAll( dialect.getDefaultProperties() ); dialect. == null 在mysql中安然无恙