使用JPA 2.1生成元模型类

时间:2013-07-20 16:05:55

标签: java jpa jpa-2.1

我在使用hibernate元模型生成器时遇到问题:

java: Error unmarshalling /META-INF/persistence.xml with exception :
   javax.xml.bind.UnmarshalException
   - with linked exception:
  [org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 103; cvc-elt.1: Cannot find the declaration of element 'persistence'.]

这是我的persistence.xml:

<persistence version="2.1" 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://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/persistence_2_1.xsd">

  <persistence-unit name="wespital" transaction-type="JTA">
    <jta-data-source>jdbc/wespital</jta-data-source>
  </persistence-unit>
</persistence>

似乎当前版本(1.2.Final)不支持JPA 2.1,我没有在git存储库中找到此生成器的任何beta版本。还有哪些其他选项可以生成元模型类?我使用wildfly作为app server。

3 个答案:

答案 0 :(得分:1)

新版本(1.3.0.Final)已于2013年8月9日发布,可以解决您的问题。

答案 1 :(得分:1)

DataNucleus JPA元模型生成器生成适用于JPA 2.0 / 2.1的类,请参阅DataNucleus docs

答案 2 :(得分:0)

我在eclipselink项目中使用了metamodel生成器,它似乎工作正常。

<dependency>
  <groupId>org.eclipse.persistence</groupId>
  <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
  <version>2.5.0</version>
  <scope>provided</scope>
</dependency>