Поток Java 8 - как найти родительский объект от ребенка? - PullRequest
2 голосов
/ 24 мая 2019

У меня есть сценарий, похожий на:

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 Ответ

5 голосов
/ 24 мая 2019

Так же, как использование findFirst или findAny в качестве операции терминала:

Optional<A> matchingObject = aList.stream()
        .filter(a -> a.getbSet().contains(b))
        .findFirst();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...