sql >> Database >  >> RDS >> Mysql

Union-query met meerdere selecties na java 8

De idiomatische benadering zou hier als volgt zijn (met behulp van 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)) {
    ...
}

Het gebruikt de handige Optional.stream() methode, die is toegevoegd in JDK 9. In JDK 8 kunt u in plaats daarvan dit doen:

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

Ik heb hier uitgebreider over geblogd.




  1. INSERT INTO .. ​​ON DUPLICATE KEY UPDATE voor meerdere items

  2. Kopieer enkele kolommen van een csv-bestand naar een tabel

  3. MySQL-verbindingsfout die ik nog nooit heb gezien

  4. Schending integriteitsbeperking:1452 laravel