当前位置: 首页 > 知识库问答 >
问题:

如何使用Hibernate JPA 2元模型生成器?

鲜于阳
2023-03-14

以下是我在pom中的相关配置.xml:

    <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <compilerArgument>-proc:none</compilerArgument>
    </configuration>
</plugin>
<plugin>
    <groupId>org.bsc.maven</groupId>
    <artifactId>maven-processor-plugin</artifactId>
    <version>3.2.0</version>
    <executions>
        <execution>
                <id>process</id>
            <goals>
                <goal>process</goal>
            </goals>
            <phase>generate-sources</phase>
            <configuration>
                <processors>
                    <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
                </processors>
            </configuration>
        </execution>
    </executions>
</plugin>
</plugins>


提前感谢您的帮助。

共有1个答案

谷良弼
2023-03-14

但是当我尝试通过运行mvn编译来生成这些元模型时,它只在目标文件夹中生成了相应的类和一个奇怪的文件夹“生成的源代码”,如下所示,并没有在源文件夹中生成相应的java文件。

生成的元类的默认文件夹是< code > $ { project . build . directory }/generated-sources/apt ,其中< code > $ { project . build . directory } 默认为< code>target。所以生成的元类应该在< code > target/generated-sources/apt 目录下(我可以从你的截图中猜出元类是生成的)。

如果你想改变这种行为,你可以通过使用<code>outputDirectory

<plugin>
    <groupId>org.bsc.maven</groupId>
    <artifactId>maven-processor-plugin</artifactId>
    <version>3.2.0</version>
    <executions>
        <execution>
            <id>process</id>
        <goals>
            <goal>process</goal>
        </goals>
        <phase>generate-sources</phase>
        <configuration>
            <processors>
                <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
            </processors>
             <outputDirectory>${project.basedir}/generated</outputDirectory>
        </configuration>
    </execution>
</executions>

并且不要忘记将新文件夹添加到您的类路径中,否则您的项目可能无法构建。

这是预期的行为吗?

对呀

如果是,是否意味着我每次使用元模型之前都需要编译代码?

是的,但是如果你不改变或者添加新的实体,你可以使用生成的类,只要你运行< code>mvn compile至少一次。

如果没有,如何在源代码文件夹中生成java文件?

我不建议这样做:-)我的意思是,将生成的类与源代码混合不是一个好主意。如果您不喜欢目标文件夹,请使用上述任何其他文件夹。

 类似资料:
  • 我有2个文件,一个ecore实现元模型和一个电子存储库。电子存储库以EMF格式与ecore实现元模型一起提供。我想浏览这个存储库的内容,我所知道的是我必须从实现元模型生成一个Eclipse插件,通过这个插件,我可以打开存储库并浏览它的内容。但我不知道如何生成插件并继续它。 ecore实现元模型是使用Eclipse Indigo SR2中的EMF版本2.7开发的,e-Repository是在相同的环

  • 问题内容: 本着与CriteriaQuery关联的类型安全的精神,JPA 2.0还具有一个API,用于支持实体的元模型表示。 是否有人知道此API的完整功能实现(生成元模型,而不是手动创建元模型类)?如果有人也知道在Eclipse中进行设置的步骤,那将是非常棒的(我认为这与设置注释处理器一样简单,但你永远不会知道)。 编辑:偶然发现了Hibernate JPA 2元模型生成器。但是问题仍然存在,因

  • 问题内容: 本着与CriteriaQuery关联的类型安全的精神,JPA 2.0还具有一个API,用于支持实体的元模型表示。 是否有人知道此API的完整功能实现(生成元模型,而不是手动创建元模型类)?如果有人也知道在Eclipse中进行设置的步骤,那将是非常棒的(我认为它与设置注释处理器一样简单,但您永远不会知道)。 编辑:偶然发现了HibernateJPA2元模型生成器。但是问题仍然存在,因为我

  • 我想知道如何使用Maven和Eclipselink 2.5生成静态元模型。通过将这些行添加到pom中,它工作得很好。运行Eclipselink 2.4时使用xml。 但2.4版之后似乎发生了一些变化,原因如下: 你们能帮帮我吗 B. R.

  • 我试图使用ANT生成Eclipse Link JPA元模型 然而,我得到以下错误,这可能是什么原因? 错误的服务配置文件,或在构造处理器对象javax时引发异常。注释。处理。处理者:提供者组织。日食坚持不懈内部的jpa。modelgen。找不到CanonicalModelProcessor

  • 我正在使用hibernate jpamodelgen使用maven生成元模型类。 当我运行mvn clean软件包时,它运行良好,没有任何问题。但是如果我第二次运行mvn包(没有clean),我会得到以下异常: 环境: 我pom.xml的片段: