【问题标题】:Static metamodel class is not generated未生成静态元模型类
【发布时间】:2018-02-02 02:30:20
【问题描述】:

我刚开始学习和使用 Jhipster。我有一个关于 JPA 静态元模型生成的问题。以下是我根据Jhipster网站所做的但是没有生成静态matemodel类(Class X_):

我创建了一个名为:SalesByDepartment 的实体。生成此实体后,我通过将 service 从 no 设置为 serviceImpl 并将 jpaMetamodelFiltering 设置为 true,将其 JOSN 文件从我的项目文件夹下的 folder:.jhipster 更改。我的理解是,在对该实体的 JSON 文件进行此更改后,我需要重新运行实体子生成器以重新生成同一实体以启用过滤功能。但是,我只能找到“SalesByDepartmentCriteria”和“SalesByDepartmentQueryService”。域包下没有“SalesByDepartment_”类。我还检查了 pom.xml,我可以找到插件:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${maven-compiler-plugin.version}</version>
            <configuration>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.mapstruct</groupId>
                        <artifactId>mapstruct-processor</artifactId>
                        <version>${mapstruct.version}</version>
                    </path>
                    <!-- For JPA static metamodel generation -->
                    <path>
                        <groupId>org.hibernate</groupId>
                        <artifactId>hibernate-jpamodelgen</artifactId>
                        <version>${hibernate.version}</version>
                    </path>

                </annotationProcessorPaths>
            </configuration>
        </plugin>

我可以知道我是否遗漏了在域包下生成“SalesByDepartment_”的其他任何内容吗?

感谢您的帮助。

顺便说一句,当我生成第一个项目时,它运行良好。我做了同样的事情,静态元模型类在项目文件夹下自动创建:'com.xxx.domain'。在使用 Maven 构建过程后,我也可以在目标文件夹下找到它们。我想有什么问题,但仍然不知道为什么会这样。下面是我使用“jhipster”创建的两个项目的屏幕截图。 A 是以前的项目,我可以生成静态元模型,但 B 不起作用: enter image description here

【问题讨论】:

    标签: jhipster


    【解决方案1】:

    JPA 静态元模型由构建过程(maven 或 gradle)生成,如 in JHipster doc 所述,因此您只需构建您的应用程序,您会在 target 下找到 SalesByDepartment_.java 用于 maven 和 build 下用于 gradle .

    【讨论】:

    • 感谢盖尔的回答。我尝试用 Maven 构建整个项目。但仍然无法在目标文件夹下找到静态元模型类。当我做我的第一个实验时,我可以在文件夹下生成静态元模型:域也可以在构建后在目标下看到它们。但是当我生成另一个项目并做了同样的事情时,并不是它不起作用。我想还是有问题
    • 然后打开一个 github 问题并提供更多详细信息。
    • 嗨@Gaël Marziou 谢谢。我今天早上刚试过。我现在可以看到那些静态元模型类。有点奇怪。不知道我做错了什么......
    • 我在 target/generated-sources/annotations/... 中找到了它们
    • Yes Marco 这是注释处理器根据 maven 或 gradle 配置生成它们的地方。
    【解决方案2】:

    我也遇到了这个问题,这是我为自己找到的最好方法 - 将依赖项添加到 maven 和注释处理器路径

        <dependencies>
             ...
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-jpamodelgen</artifactId>
                <version>${hibernate.version}</version>
            </dependency>
        </dependencies>
    

    注释处理器

     <build>
        <plugins>
            ...
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>11</source>
                    <target>11</target>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.hibernate</groupId>
                            <artifactId>hibernate-jpamodelgen</artifactId>
                            <version>${hibernate.version}</version>
                        </path>
                        ...
                    </annotationProcessorPaths>
                </configuration>
            </plugin>
        </plugins>
    </build>
    

    希望对某人有所帮助)

    【讨论】:

    • 非常感谢,安德鲁。回复晚了非常抱歉。没有问题了。
    猜你喜欢
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多