spring递归延迟加载子实体

xjreopfe  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(367)

我正在尝试递归检索总部下的所有办公室。。但是,在尝试通过第二代流时,我得到了一个nullpointerexception。

public class Office extends AbstractPersistableCustom<Long>{

    @OneToMany(fetch = FetchType.LAZY)
    @JoinColumn(name = "parent_id")
    @Builder.Default
    private List<Office> children = new LinkedList<>();

    // For retrieving children recursively
    public Stream<Office> flattened() {
        return Stream.concat(
                Stream.of(this),
                children.stream().flatMap(Office::flattened));
    }

}

仓库 Package

public Office findOfficeHierarchy(final Long id) {
        final Office office = this.repository.findById(id).orElseThrow(() -> new OfficeNotFoundException(id));
        office.loadLazyCollections();          
        return office ;
    }

在我的控制器类中

List<Office> recursive= children.stream().flatMap(Office::flattened).collect(Collectors.toList());

我确实希望避免使用fetchtype.earge,因为它有大量的数据。
有什么建议吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题