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

IntelliJ无法识别JPA静态元模型

陆城
2023-03-14

我使用JHipster以Gradle作为构建工具生成了应用程序。

当我创建实体时,我添加了过滤支持,这会生成JPA静态元模型。但是IntelliJ无法识别元模型。

我在IntelliJ上启用了注释处理器设置,但它似乎不起作用。

为了让IntelliJ识别JPA静态元模型,我必须更改哪些设置?

共有3个答案

仲孙鸣
2023-03-14

我不允许发表评论,但我想补充一下托本·詹森的回答。除了插件配置之外,我还必须将其添加到项目的依赖项中:

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-jpamodelgen</artifactId>
            <version>5.4.21.Final</version>
        </dependency>

这就是在目标/生成源/注释路径中生成源的内容。

所以pom的结局是这样的:

    <dependencies>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-jpamodelgen</artifactId>
            <version>5.4.21.Final</version>
        </dependency>
        ...
    </dependencies>

    ...

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>3.2.0</version>
                <executions>
                    <execution>
                        <id>add-source</id>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <phase>generate-sources</phase>
                        <configuration>
                            <sources>
                                <source>target/generated-sources/annotations</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        ...
    </build>

夏侯英纵
2023-03-14
sourceSets {
    main.java.srcDirs += 'build/generated/source/apt/main'
}

使现代化

更好的解决方案是修改IntelliJ插件

idea {
    module {
        sourceDirs += file("build/generated/source/apt/main")
        generatedSourceDirs += file("build/generated/source/apt/main")
    }
}
丁正阳
2023-03-14

默认情况下,元模型类生成到文件夹中。该文件夹似乎未注册为源文件夹。

您可以在IDE中手动更改,或者如果您使用的是Maven构建,则可以通过向构建配置中添加以下插件来自动更改:

<project>
    ...

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <id>add-source</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>target/generated-sources/annotations</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    ...
</project>

我在我的一个冬眠技巧中详细解释了这一点。

 类似资料:
  • 我正在尝试使用TestNG来测试我的Java代码。TestNG插件安装在IntelliJ中,依赖项: 已添加到Maven中。然而,当我在类中写入“@Test”时,IntelliJ给出了错误消息:“无法解析符号'Test'。 导入组织。testng。注释。测试也无法识别。Intellij似乎忽略了Maven依赖。 以下是项目结构和错误: 我应该用TestNG做更多的事情,而不是仅仅添加Maven依赖

  • 我最近尝试导入一个现有的Gradle项目,使用启动窗口中的“Open project”选项和现有的build.Gradle文件自动设置该项目。 就在我这样做之后,IntelliJ中出现了一条错误消息,说: 看起来像这样,IntelliJ抱怨我没有将play框架添加到我的PATH变量中。尽管外壳的输出告诉了某事物。其他: 我还编写了一个简单的类来显示IntelliJ使用的PATH变量: 当我运行这个

  • null 附注:Maven-Build是成功的。因此,Maven正在识别存储库中的包。

  • 我的应用程序有一个问题,当我登录时,应用程序崩溃,我得到的错误: 我已经试着弄乱了等级,改变了变量。问题似乎源于这一套方案: 然后它又提到: 这是我的卷轴 对于如何找到修复错误的方法有什么想法吗?

  • 因此,我试图在模板类中包含输入和输出运算符的两个友元声明,但每次编译代码时,它似乎都无法识别该运算符。这是我的头文件。 错误:严重性代码描述项目文件行抑制状态错误LNK2019未解析外部符号“class std::basic_ostream” 这似乎是一个链接错误。 屏幕h 这是我的主要cpp文件 main.cpp 我注意到这个问题可以通过在类体中包含友元声明和函数定义来解决,但是我不想这样做。

  • 在IntelliJ Scala的调试器中,您可以打开一个窗口来评估表达式(altF8) 但是,只要表达式中有Scala符号(即'fobar),它总是失败,说: