Java JPA-“;无法生成实体管理器工厂“;
我想在我的数据库中添加一个数据。我在我的项目中使用Oracle DB、Jboss eap 6.1 当我运行我的测试类时,我得到了这个异常。我怎样才能解决这个问题?请帮帮我。我很抱歉我的英语不好 Test.javaJava JPA-“;无法生成实体管理器工厂“;,java,hibernate,jpa,persistence,entitymanager,Java,Hibernate,Jpa,Persistence,Entitymanager,我想在我的数据库中添加一个数据。我在我的项目中使用Oracle DB、Jboss eap 6.1 当我运行我的测试类时,我得到了这个异常。我怎样才能解决这个问题?请帮帮我。我很抱歉我的英语不好 Test.java package com.toyota.route; import com.toyota.route.SysadmUserEntity; import javax.persistence.EntityManager; import javax.persistence.EntityMa
package com.toyota.route;
import com.toyota.route.SysadmUserEntity;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
public class Test {
public static void main(String[] args){
EntityManagerFactory emf;
EntityManager em;
SysadmUserEntity user = new SysadmUserEntity();
user.setFirstName("onur");
user.setLastName("ozcan");
user.setPassword("12355");
user.setSysadmUid("1");
user.setUsername("aonurozcan");
//-----------------------------------
emf = Persistence.createEntityManagerFactory("Toyota-Deneme");
em = emf.createEntityManager();
EntityTransaction et = em.getTransaction();
et.begin();
em.persist(user);
et.commit();
em.close();
emf.close();
}
}
Persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="2.1">
<persistence-unit name="Toyota-Deneme" transaction-type="JTA">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>com.toyota.route.SysadmUserEntity</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver" />
<property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:XE" />
<property name="javax.persistence.jdbc.user" value="myUsername" />
<property name="javax.persistence.jdbc.password" value="myPassword" />
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
</persistence>
org.hibernate.jpa.HibernatePersistenceProvider
com.toyota.route.SysadmUserEntity
Pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>toyota</groupId>
<artifactId>com.toyota</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.9.Final</version>
</dependency>
</dependencies>
</project>
4.0.0
丰田
丰田公司
1
org.hibernate
休眠实体管理器
4.3.9.最终版本
编辑
堆栈跟踪
Nis 20, 2015 8:34:58 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
INFO: HHH000204: Processing PersistenceUnitInfo [
name: Toyota-Deneme
...]
Nis 20, 2015 8:34:58 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.9.Final}
Nis 20, 2015 8:34:58 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Nis 20, 2015 8:34:58 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Nis 20, 2015 8:34:59 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
Nis 20, 2015 8:34:59 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!)
Nis 20, 2015 8:34:59 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000401: using driver [oracle.jdbc.OracleDriver] at URL [jdbc:oracle:thin:@localhost:1521:XE]
Nis 20, 2015 8:34:59 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000046: Connection properties: {user=TOYOTAROUTE, password=****}
Nis 20, 2015 8:34:59 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000006: Autocommit mode: false
Nis 20, 2015 8:34:59 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
Nis 20, 2015 8:34:59 PM org.hibernate.engine.jdbc.internal.JdbcServicesImpl configure
WARN: HHH000341: Could not obtain connection metadata : Desteklenmeyen özellik
Nis 20, 2015 8:34:59 PM org.hibernate.engine.jdbc.internal.LobCreatorBuilder useContextualLobCreation
INFO: HHH000422: Disabling contextual LOB creation as connection was null
Exception in thread "main" javax.persistence.PersistenceException: Unable to build entity manager factory
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:83)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
at com.toyota.route.Test.main(Test.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
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:111)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206)
at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1887)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1845)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:75)
... 8 more
NIS2012058:34:58 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
信息:HH000204:正在处理PersistenceUnitInfo[
名称:丰田Deneme
...]
NIS2011058:34:58 PM org.hibernate.Version日志版本
信息:hh000412:Hibernate核心{4.3.9.Final}
Nis 2020158:34:58 PM org.hibernate.cfg.Environment
信息:HH000206:找不到hibernate.properties
Nis 2020158:34:58 PM org.hibernate.cfg.Environment buildBytecodeProvider
信息:HH000021:字节码提供程序名称:javassist
Nis 2020158:34:59 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager
信息:HCANN000001:Hibernate Commons注释{4.0.5.Final}
Nis 2020158:34:59 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
警告:HH000402:使用Hibernate内置连接池(不用于生产!)
Nis 202015年8月20日下午8:34:59 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
信息:HH000401:在URL[jdbc:oracle:thin:@localhost:1521:XE]处使用驱动程序[oracle.jdbc.OracleDriver]
Nis 202015年8月20日下午8:34:59 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
信息:HH000046:连接属性:{user=TOYOTAROUTE,password=***}
Nis 202015年8月20日下午8:34:59 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
信息:HH000006:自动提交模式:错误
Nis 2020158:34:59 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
信息:HH000115:休眠连接池大小:20(最小值=1)
Nis 2020158:34:59 PM org.hibernate.engine.jdbc.internal.jdbcservicesiml configure
警告:HH000341:无法获取连接元数据:Desteklenmeyenözellik
Nis 2020158:34:59 PM org.hibernate.engine.jdbc.internal.LobCreatorBuilder UseContexturationAllobCreation
信息:HH000422:由于连接为空,因此禁用上下文LOB创建
线程“main”javax.persistence.PersistenceException中出现异常:无法生成实体管理器工厂
位于org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:83)
位于javax.persistence.persistence.createEntityManagerFactory(persistence.java:79)
位于javax.persistence.persistence.createEntityManagerFactory(persistence.java:54)
位于com.toyota.route.Test.main(Test.java:26)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:606)
位于com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
原因:java.lang.NullPointerException
位于org.hibernate.engine.jdbc.internal.jdbcservicesiml.configure(jdbcservicesiml.java:244)
位于org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206)
位于org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1887)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1845)
位于org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
位于org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
位于org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
位于org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
在org.hibernate.jpa.HibernatePersistenceProvider.createEntityManager工厂(HibernatePersistenceProvider.java:75)
... 8个以上
您正在使用手动管理的持久性上下文和事务,因此需要
<persistence-unit name="Toyota-Deneme" transaction-type="RESOURCE_LOCAL">
而不是transaction type=“JTA”
我测试了自己,错误的事务类型引发了一个模糊的NullPointerException放置整个stacktrace,它实际上说明了为什么它不能创建一个。我添加了stacktrace。谢谢。NullPointerException信息量不大,下面没有其他错误或原因?我能想到的唯一一件事是,这应该是因为您自己管理事务,并且没有配置事务提供程序。我将事务类型JTA更改为RESOURCE_LOCAL,但仍然得到相同的异常。谢谢。确保你清理了项目,有时候IDE缓存了持久性,这经常发生在我身上。缓存的良好测试是将密码更改为错误密码以获得连接错误。交易应该是本地的,所以至少是固定的。