Java spring Streamable to PdfPTable

Не знаю как сформулировать правильно, поправьте меня, пожалуйста... как результаты поиска Streamable<Message> messages записать в ячейки таблицы? Строк может быть сколько угодно.

@PostMapping("/search")
public String search (String searchsn, Map<String, Object> model) throws DocumentException, IOException {
    Streamable<Message> messages;
    if (searchsn != null && !searchsn.isEmpty()) {
        messages = messageRepo.findBySnContainingIgnoreCase(searchsn)
                .and(messageRepo.findByTextContainingIgnoreCase(searchsn))
                .and(messageRepo.findByOwnerContainingIgnoreCase(searchsn))
                .and(messageRepo.findByInvidContainingIgnoreCase(searchsn));

Пробовал так, но, само собой, помещается объект в ячейку:

PdfPTable table = new PdfPTable(1);        
PdfPCell horizontalAlignCell = new PdfPCell(new Phrase(String.valueOf(messages),font));
        horizontalAlignCell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(horizontalAlignCell);

Может есть более подходящая для этого библиотека?


Ответы (1 шт):

Автор решения: kent

В Java 8 можно применить цикл для добавления ячеек в таблицу. В этом цикле данные берутся из БД. Для этого используются гетеры, созданные в классе Message, описывающем структуру БД.

    for (Message mess : messages) {
        table.addCell(mess.getText());
        table.addCell(mess.getInvid());
        table.addCell(mess.getSn());
        table.addCell(mess.getAuthor());
    }
→ Ссылка