首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用Hibernate作为我的JPA提供程序时出现的各种错误

使用Hibernate作为我的JPA提供程序时出现的各种错误
EN

Stack Overflow用户
提问于 2016-05-06 10:57:04
回答 1查看 1.2K关注 0票数 0

我正在尝试使用JPA,所以我遵循了一个指南,并尝试用Hibernate自己完成它。我创建了一个只有两个变量的实体"testEntity“,并创建了一个带有测试方法的测试类。

我的连接池有一个JDBC连接,该连接已经过测试并正在工作。我配置了我的持久性单元来使用它。查看我的persistence.xml:

代码语言:javascript
代码运行次数:0
运行
复制
<?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>

我在我的考试课上用它:

代码语言:javascript
代码运行次数:0
运行
复制
  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();

..。但我发现了很多错误:

代码语言:javascript
代码运行次数:0
运行
复制
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在此项目中使用的自动添加库的一个小屏幕截图:

EN

回答 1

Stack Overflow用户

发布于 2016-05-06 11:15:54

您的问题是persistence.xml不完整。你可能需要一些额外的部分。要了解更多信息,您可以通过这个教程

persistence.xml**.** 您的也有额外的空间

persistence.xml中的第一个变化

代码语言:javascript
代码运行次数:0
运行
复制
<provider>org.hibernate.jpa.HibernatePersistenceProvider    </provider>

代码语言:javascript
代码运行次数:0
运行
复制
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

那就跑吧。如果有什么问题,就通知我。

更新:

请将版本更改如下:

代码语言:javascript
代码运行次数:0
运行
复制
<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">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37070658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档