找不到元素’持久性’的声明

已将persistence.xml放在eclipse中项目的类路径中,因为在错误之前找不到该文件。 现在给出了这个错误:

引起:javax.persistence.PersistenceException:无效的persistence.xml。 解析XML时出错[line:-1,column:-1]:cvc-elt.1:找不到元素’persistence’的声明

  org.hibernate.ejb.HibernatePersistence             

问题是你混合了JPA 2.0和JPA 2.1表示法。

这个

  

对于JPA 2.1或此

  

对于JPA 2而不是其混合。

有关详细信息,请参阅http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/index.html 。

提供的XML存在一些问题,可能是缺少的版本,也许是XML定义。 也可能是一个奇怪的角色或某个地方的错字。

下面是一个工作模板,请尝试相反。

   ....  

我曾经遇到过类似的问题(找不到元素’entity-mappings’的声明),当我使用带有JPA版本2.0的persistence.xml和版本为2.1的orm.xml文件时。 我认为上面报告的错误是类似的。

JPA的工作样本2.仔细阅读下面的示例并记下它们的版本。 确保它们与样品中的版本相同。 您也可以使用JPA 2.1和approprite模式引用。

persistence.xml中

   jdbc/sanjusDataSourceXA META-INF/orm.xml org.sanjus.pa.ejb.entity.UserEntity   

orm.xml中

   SELECT a.userJson FROM UserEntity a WHERE a.userId = :userId   

解决了!

我不知道到底出了什么问题,但效果很好:

   org.hibernate.ejb.HibernatePersistence