我正在尝试使用JPA,所以我遵循了一个指南,并尝试用Hibernate自己完成它。我创建了一个只有两个变量的实体"testEntity“,并创建了一个带有测试方法的测试类。
我的连接池有一个JDBC连接,该连接已经过测试并正在工作。我配置了我的持久性单元来使用它。查看我的persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
version="2.1">
<persistence-unit name="PruebaswebPU" transaction-type="JTA">
<provider>org.hibernate.jpa.HibernatePersistenceProvider </provider>
<jta-data-source>java:app/jdbc/nuevaConexion</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>
我在我的考试课上用它:
EntityManagerFactory emfactory = Persistence.createEntityManagerFactory("PruebaswebPU");
EntityManager entitymanager = emfactory.createEntityManager();
entitymanager.getTransaction().begin();
testEntity ent = new testEntity();
ent.setId(5l);
ent.setNombre("Nombraco");
entitymanager.persist(ent);
entitymanager.getTransaction().commit();
entitymanager.close();
emfactory.close();
..。但我发现了很多错误:
may 06, 2016 12:52:26 PM org.hibernate.ejb.HibernatePersistence logDeprecation WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
may 06, 2016 12:52:26 PM org.hibernate.ejb.HibernatePersistence logDeprecation WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
may 06, 2016 12:52:26 PM org.hibernate.ejb.HibernatePersistence logDeprecation WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
Exception in thread "main" javax.persistence.PersistenceException: Unable to locate persistence units
at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:99)
at org.hibernate.ejb.HibernatePersistence.getEntityManagerFactoryBuilderOrNull(HibernatePersistence.java:93)
at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:86)
at org.hibernate.ejb.HibernatePersistence.getEntityManagerFactoryBuilderOrNull(HibernatePersistence.java:101)
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:67)
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 testing.samplePersistence.main(samplePersistence.java:20)
Caused by: javax.persistence.PersistenceException: Invalid persistence.xml. Error parsing XML [line : -1, column : -1] : cvc-complex-type.2.4.b: El contenido del elemento 'persistence' no está completo. Se esperaba uno de '{"http://xmlns.jcp.org/xml/ns/persistence":persistence-unit}'.
at org.hibernate.jpa.boot.internal.PersistenceXmlParser.validate(PersistenceXmlParser.java:377)
at org.hibernate.jpa.boot.internal.PersistenceXmlParser.loadUrl(PersistenceXmlParser.java:310)
at org.hibernate.jpa.boot.internal.PersistenceXmlParser.parsePersistenceXml(PersistenceXmlParser.java:114)
at org.hibernate.jpa.boot.internal.PersistenceXmlParser.doResolve(PersistenceXmlParser.java:104)
at org.hibernate.jpa.boot.internal.PersistenceXmlParser.locatePersistenceUnits(PersistenceXmlParser.java:86)
at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:95) ... 8 more
C:\Users\hp\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1 BUILD FAILED (total time: 0 seconds)
我是不是遗漏了什么?提前感谢!
编辑:
Netbeans在此项目中使用的自动添加库的一个小屏幕截图:
发布于 2016-05-06 03:15:54
您的问题是persistence.xml
不完整。你可能需要一些额外的部分。要了解更多信息,您可以通过这个教程。
persistence.xml
**.** 您的也有额外的空间
persistence.xml
中的第一个变化
<provider>org.hibernate.jpa.HibernatePersistenceProvider </provider>
至
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
那就跑吧。如果有什么问题,就通知我。
更新:
请将版本更改如下:
<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">
https://stackoverflow.com/questions/37070658
复制相似问题