sql >> Databáze >  >> RDS >> Mysql

Sjednocovací dotaz s vícenásobným výběrem po java 8

Idiomatický přístup by zde byl následující (pomocí JDK 9 API):

try (Stream<Record5<UUID, UUID, String, Integer, String>> stream = valuesToQuery
        .stream()
        .map(this::getSelectQueryForValue)
        .reduce(Select::union)
        .stream() // JDK 9 method
        .flatMap(Select::fetchStream)) {
    ...
}

Používá užitečný Optional.stream() metoda, která byla přidána v JDK 9. V JDK 8 můžete místo toho udělat toto:

valuesToQuery
    .stream()
    .map(this::getSelectQueryForValue)
    .reduce(Select::union)
    .ifPresent(s -> {
        try (Stream<Record5<UUID, UUID, String, Integer, String>> stream = 
             s.fetchStream()) {
            ...
        }
    })

Podrobněji jsem o tom napsal blog zde.




  1. Problémy s pohyblivým datadirem MariaDB 10 CentOS 7

  2. Jak číst a interpretovat chyby SQL

  3. Cheat Sheet pro Access 2021 For Dummies

  4. Jak spravovat své databáze PostgreSQL z rozhraní CLI ClusterControl