我正在尝试递归检索总部下的所有办公室。。但是,在尝试通过第二代流时,我得到了一个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,因为它有大量的数据。
有什么建议吗?
暂无答案!
目前还没有任何答案,快来回答吧!