Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @JoinColumnsor公式导致n+;1期_Java_Spring Boot_Spring Data Jpa - Fatal编程技术网

Java @JoinColumnsor公式导致n+;1期

Java @JoinColumnsor公式导致n+;1期,java,spring-boot,spring-data-jpa,Java,Spring Boot,Spring Data Jpa,当我使用@JoinColumnsOrFormulas或@JoinColumns和@NamedEntityGraph(includeAllAttributes=true)时,我面临n+1查询问题 我还试图在规范中左连接实体,这也会导致n+1查询问题 实体: @Data @Entity @Table(name = "book") @NamedEntityGraph(name = "all", includeAllAttributes = true) public class BookEntity i

当我使用@JoinColumnsOrFormulas或@JoinColumns和@NamedEntityGraph(includeAllAttributes=true)时,我面临n+1查询问题

我还试图在规范中左连接实体,这也会导致n+1查询问题

实体:

@Data
@Entity
@Table(name = "book")
@NamedEntityGraph(name = "all", includeAllAttributes = true)
public class BookEntity implements JpaEntity {

    @ManyToOne(targetEntity = CustomerEntity.class)
    @JoinColumnsOrFormulas({
            @JoinColumnOrFormula(column = @JoinColumn(name = "customer", referencedColumnName = "number", insertable = false, updatable = false)),
            @JoinColumnOrFormula(column = @JoinColumn(name = "sub_customer", referencedColumnName = "sub_number", insertable = false, updatable = false)),
            @JoinColumnOrFormula(formula = @JoinFormula(value = "'2019'", referencedColumnName = "year"))
    })
    private CustomerEntity customerEntity;
}
存储库:

@Override
    @EntityGraph(value = "all")
    Page<BookEntity> findAll(Specification<BookEntity> spec, Pageable pageable);
@覆盖
@EntityGraph(value=“全部”)
页码findAll(规范规范,可分页);
我看这个问题是正确的。我看到了第一个查询的连接,因此看起来我拥有完整的实体,不需要进行n+1查询。但是在正确的查询之后,我看到了CustomerEntity的额外选择


有人能帮我避免这个案例中的n+1问题吗?

我们还需要客户资源来充分理解。您在此类中是否有eager或*toOne关系?@pdem CustomerEntity与BookEntity没有关系。这是单向关系,我们还需要客户来源来充分理解。您在此类中是否有eager或*toOne关系?@pdem CustomerEntity与BookEntity没有关系。这是单向关系
@Override
    @EntityGraph(value = "all")
    Page<BookEntity> findAll(Specification<BookEntity> spec, Pageable pageable);