配置文件如下
<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中安然无恙