IntelliJ IDEA突出显示持久的@Entity类名称,JPQL中的“无法解析符号”为红色,这会分散注意力并掩盖实际问题。
因此,例如,我在我的存储库中声明了一个查询:
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(我的项目不使用)
答案 0 :(得分:43)
好像您没有在构面配置中选择默认的JPA提供程序。根据您使用的提供商,从列表中选择一个。可用选项包括EclipseLink,Hibernate,OpenJPA,TopLink
答案 1 :(得分:23)
确保您的模块在IntelliJ IDEA中有JPA或Hibernate方面configured。
答案 2 :(得分:0)
文件->项目结构
在左窗格中选择“ Facets”。如果未列出JPA,请单击“ +”号并添加“ JPA”
在同一对话框的底部,在“默认JPA Provider”处,选择-“休眠”,然后按“确定”
如果@Table注释出错,请配置并选择数据源
现在选择的表名应被识别为实体类名
答案 3 :(得分:0)
如果您使用的是Spring-boot,请尝试添加此依赖项。
spring-boot-starter-data-jpa
答案 4 :(得分:0)
如果您在 maven 中使用 Spring Boot,请在您的 pom.xml
文件中添加此依赖项。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>