sql >> Database teknologi >  >> RDS >> Mysql

Unionsforespørgsel med flere valg efter java 8

Den idiomatiske tilgang her ville være som følger (ved at bruge 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)) {
    ...
}

Den bruger den nyttige Optional.stream() metode, som blev tilføjet i JDK 9. I JDK 8 kunne du i stedet gøre dette:

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

Jeg bloggede om dette mere detaljeret her.




  1. FILE_ID() vs FILE_IDEX() i SQL Server:Hvad er forskellen?

  2. hvordan man får korrekt optælling

  3. Sådan tilføjes et logo til en rapporthoved i Microsoft Access

  4. Indsæt aktuel dato/tid ved hjælp af now() i et felt ved hjælp af MySQL/PHP