45

IntelliJ IDEA 在 JPQL 中用红色“无法解析符号”突出显示持久的 @Entity 类名称,这会分散注意力并掩盖实际问题。

因此,例如,我在我的存储库中声明了一个查询:

private static final String READ_BY_CANDIDATE_KEY = "SELECT cr FROM Entity AS cr left join cr.relationship AS re left join fetch cr.relationship2 WHERE re.candidateKey=:ID";

.. 并且“Entity”带有下划线,即使“Entity”是一个有效的类名,并且具有@Entity 注释。当代码实际运行时,没有问题。

我想需要某种配置才能让 IDE 知道哪些类是有效的?该配置是如何完成的?

更新:我确实有一个 JPA 方面,但它没有看到带注释的类。它似乎需要一个 persistence.xml 或 orm.xml (我的项目没有使用)

4

6 回答 6

56

似乎您没有在构面配置中选择默认的 JPA 提供程序。根据您使用的提供商,从列表中选择一个。可用选项包括 EclipseLink、Hibernate、OpenJPA、TopLink

于 2012-12-11T16:43:22.853 回答
24

确保您在 IntelliJ IDEA 中为您的模块配置了JPAHibernate facet 。

于 2012-09-14T15:11:01.010 回答
3

文件 -> 项目结构

在左侧窗格中选择“构面”。如果没有列出 JPA,请单击“+”号并添加“JPA”

在同一对话框的底部,在“默认 JPA 提供程序”中,选择 - “休眠”,按“确定”

如果@Table annotation 有错误,请配置并选择数据源

现在选择的表名应该被识别为实体类名

于 2019-11-06T06:42:34.593 回答
1

如果您使用 Spring Boot 和 maven,请在pom.xml文件中添加此依赖项。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
于 2021-07-27T22:47:58.017 回答
0

有时 JPA Buddy 插件会阻止 springboot JPA 配置。确保这不会导致问题。

于 2022-02-13T12:36:18.167 回答
0

Try adding this dependency if you are using Spring-boot.
spring-boot-starter-data-jpa

于 2020-03-29T18:22:50.097 回答