>

나와 비슷한 시나리오가 있습니다 :

public class A {
    private String id;
    @ManyToMany
    private Set<B> bSet;
    // getters and setters
}

그리고

public class B {
    private String id;
    // other attributes
    // getters and setters
}

A 의 인스턴스를 어떻게 찾을 수 있습니까  내가 B 의 인스턴스가있을 때   stream() 를 사용하여  API? 나는 다음과 같은 것을 시도했다 :

public A findAFromB(B b) {
    List<A> aList = aService.findAll();
    Optional<A> matchingObject = aList.stream().filter({find a where a.getBSet().contains(b)}).getA();
return (A) matchingObject.get();
}

이 필터를 올바르게 작성하는 방법?

  • 답변 # 1

    findFirst 를 사용하는 것과 같은 것  또는 findAny  터미널 작업으로 :

    Optional<A> matchingObject = aList.stream()
            .filter(a -> a.getbSet().contains(b))
            .findFirst();
    
    

관련 자료

  • 이전 sql - 지정된 'INSTALL'설정이 인식되지 않습니다 오류 코드 0x84B40003
  • 다음 regex - 배열에서 REGEXEXTRACT를 사용하여 여러 열 검색