IntelliJ IDEA在JPQL中使用"无法解析符号"突出显示@Entity类名

Sim*_*bbs 42 annotations jpa intellij-idea jpql

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";
Run Code Online (Sandbox Code Playgroud)

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

我想要让IDE了解哪些类是有效的,需要某种配置?这个配置是如何完成的?

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

raj*_*ish 49

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

  • 转到文件>项目结构>构面.然后单击+图标并将JPA添加到项目/模块中.完成此操作后,您可以选择默认JPA提供程序. (25认同)
  • 这并不能解决我的问题。 (3认同)
  • 我只有 Android、Android Artifact、Android-Gradle、APK、Java-Gradle、Kotlin、Native-Android-Gradle 选项。 (3认同)
  • 我到底在哪里设置? (2认同)

Cra*_*der 24

确保在模块的IntelliJ IDEA中配置JPAHibernate facet .

  • 如果您使用Spring作为JPA配置(没有persistence.xml),只需创建一个JPA facet并设置默认的JPA Provider.不需要指定xml文件. (4认同)
  • @Amalgovinus对于Spring Boot应用程序,没有什么可供选择的.即使手动创建JPA和/或Hibernate构面,列表也保持为空. (2认同)