firatgursoy / fluentquery

FluentQuery is a sql query builder by using java 8 functional interfaces and spring's JdbcTemplate.
Apache License 2.0
5 stars 0 forks source link

Mapping support for map, pair and multimap #21

Closed firatgursoy closed 3 years ago

firatgursoy commented 3 years ago

added extract method to FluentQueryinterface subsequent to implemented and tested also created Extractors utility class.

    @Test
    void mapTest() {
        Map<Long, String> map = factory.newQuery()
                .append("select i.id, i.code from invoice i")
                .extract(Extractors.newHashMapExtractor(Long.class, String.class));
        Assertions.assertFalse(map.isEmpty());
    }

    @Test
    void multiValueMapTest() {
        MultiValueMap<String, BigDecimal> map = factory.newQuery()
                .append("select i.code as invoiceCode, idd.amount as invoiceDetailAmount from invoice i")
                .append("join invoice_detail idd on idd.invoice_id = i.id")
                .param(new InvoiceSearchForm())
                .extract(Extractors.newMultiValueMapExtractor(String.class, BigDecimal.class));
        Assertions.assertFalse(map.isEmpty());
    }