Несколько объектов из одного ResultSet, используя шаблон JDBC с Spring - PullRequest
0 голосов
/ 13 ноября 2018

Вот что rs получает в результате:

Order(id=1, orderNumber=A1, orderRows=[OrderRow(itemName=Motherboard, quantity=0, price=5), OrderRow(itemName=Cpu, quantity=5, price=0)])

А сейчас я пытаюсь получить оба OrderRows:

private RowMapper<Order> getPostRowMapper() {
    return (rs, rowNum) -> {
        Order order = new Order();
        order.setId(rs.getLong("id"));
        order.setOrderNumber(rs.getString("ordernumber"));
        System.out.println("quan" + rs.getString("quantity")); // Prints 0
        System.out.println("quan" + rs.getString("price")); // Prints 5
        System.out.println("quan" + rs.getString("quantity")); // Prints 0 (should print 5)

        return order;
    };
}

Вот как бы я это сделал, если бы мог сделать это в a loop, если бы мог каким-то образом отделить OrderRows:

//For the first iteration
if(resultSet.getString("itemname") != null){
    order.add(new OrderRow(resultSet.getString("itemname"),
            resultSet.getInt("quantity"), resultSet.getInt("price")));
}
while (resultSet.next()){
    if(resultSet.getString("itemname") != null){
        order.add(new OrderRow(resultSet.getString("itemname"),
                resultSet.getInt("quantity"), resultSet.getInt("price")));
    }
}

У меня есть два Objects один - Order, а другой - OrderRow. Можно ли создать несколько объектов в одном RowMapper, оба Order/OrderRow или мне нужно несколько запросов для этого?

Или я могу как-то просмотреть все OrderRows, которые есть в наборе результатов, и добавить сделать их в OrderRow объекты в итерации?

...