spring-data-jpa - 如何将@EntityGraph批注分配给Spring Data JPA存储库.findAll()

标签 spring-data-jpa

使用findAll()注释Spring Data JPA存储库方法@EntityGraph:

import org.springframework.data.jpa.repository.JpaRepository;
[...]

public interface OptgrpRepository extends JpaRepository<Optgrp> {

@EntityGraph(value = "Optgrp.sysoptions")
List<Optgrp> findAll();

}

导致此错误消息:
org.springframework.data.mapping.PropertyReferenceException: No property findAll found for type Optgrp!
findAll()更改为其他名称时,也会发生相同的错误:
findAllWithDetail()-> No property findAllWithDetail found for type Optgrp!findWithDetailAll()-> No property findWithDetailAll found for type Optgrp!
问题:可以在查找所有实体的Spring Data JPA存储库方法上使用@EntityGraph注释吗?

编辑:按照评论中的要求,这是Optgrp实体类的摘录:
@Entity
@NamedEntityGraph(name = "Optgrp.sysoptions", attributeNodes = @NamedAttributeNode("sysoptions"))
public class Optgrp implements Serializable {
    [...]
    @OneToMany(mappedBy="optgrp", cascade = CascadeType.ALL, orphanRemoval=true)
    @OrderBy(clause = "ordnr ASC")
    private List<Sysoption> sysoptions = new ArrayList<>();
}

还有Sysoption实体类:
@Entity
public class Sysoption implements Serializable {
[...]
    @ManyToOne
    @JoinColumn(name = "optgrp_id", insertable=false, updatable=false)
    private Optgrp optgrp;
}

最佳答案

对于所有人也将Stack Overflow用作知识数据库的所有人,我记录了Markus Pscheidts挑战的新状态。三年零六个月后,@EntityGraph批注现在可以直接在Spring Data findAll()中的JpaRepository函数上工作,这是Markus最初的期望。

@Repository
public interface ImportMovieDAO extends JpaRepository<ImportMovie, Long> {
  @NotNull
  @Override
  @EntityGraph(value = "graph.ImportMovie.videoPaths")
  List<ImportMovie> findAll();
}

测试中使用的版本:Spring Boot 2.0.3.RELEASE,其中包含spring-boot-starter-data-jpa。

关于spring-data-jpa - 如何将@EntityGraph批注分配给Spring Data JPA存储库.findAll(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29824687/

相关文章:

java - 从数据库加载数据时发生StackOverflowError

java - Spring Boot如何编辑实体

java - 使 Spring Data JPA 与 DataNucleus (GAE) 配合使用 (Spring Boot)

java - spring data jpa 存储库是否可以使用具有相同简单名称的多个实体?

java - 使用 Java 8 谓词的 JPA 存储库过滤器

java - 使用 Spring 在 JpaRepository 中可以使用 IN 子句和 JOIN 进行查询吗?

java - 如何在 spring-data-jpa 中进行投影

mysql - 复杂的 JPQL 查询返回 0 零结果在查询中两次获取表

database - 从 1.4.200 升级 H2 版本 2.0.202

java - Spring JPA - 如何在事务中强制自定义存储库调用顺序