나는 JPA2 + Hibernate 웹 프로젝트를 가지고 있으며, 그것이 지속되는지 테스트하려고한다. java.lang.NullPointerException org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure
package model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity(name="alunos")
public class Aluno {
@Id @GeneratedValue
private Long id;
private String nome;
public void setId(Long id) {
this.id = id;
}
public Long getId() {
return id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
이
가persistence.xml
이다 :
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import model.Aluno;
public class GeraTabelas {
public static void main(String[] args) {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("PrimeiroProjetoJSF");
EntityManager fac = factory.createEntityManager();
Aluno arthur = new Aluno();
arthur.setNome("Arthur");
fac.persist(arthur);
factory.close();
}
}
I을 :
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="PrimeiroProjetoJSF" transaction-type="RESOURCE_LOCAL">
<class>model.Aluno</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@------------"/>
<property name="javax.persistence.jdbc.user" value="-----"/>
<property name="javax.persistence.jdbc.password" value="------"/>
<property name="javax.persistence.jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="create" />
</properties>
</persistence-unit>
</persistence>
이 지속성 테스트하는 main()
방법 클래스가
이
는 실체 실행하면 다음 예외가 throw됩니다.Exception in thread "main" javax.persistence.PersistenceException: Unable to build entity manager factory
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:81) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
at GeraTabelas.main(GeraTabelas.java:10)
Caused by: java.lang.NullPointerException
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:244)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206)
at
org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178)
at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843)
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:399)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactory>uilderImpl.java:842)
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:73)
... 4 more
어떻게 이것이 발생하며 어떻게 해결할 수 있습니까?
당신의'hibernate.cfg.xml'은 어디에 있습니까 - JDBC 구성 문제처럼 보이기 때문에 문제가 있다고 생각합니다. –
그럼 hibernate.cfg.xml 대신에 persistence.xml을 사용하고 있습니다. –
물론, 어떻게 보이나요? –