Как отобразить поле с псевдонимами Postgres в поле Vaadin?

#java #jooq #postgresql-9.1 #vaadin7

#java #jooq #postgresql-9.1 #vaadin7

Вопрос:

Это запрос, который я написал:

 public List<PrRevamps> fetchRevampHistory(String refNo) {
    List<PrRevamps> list = dsl.select(
            DSL.concat(
                Tables.PR_REVAMPS.PR_REVAMP_CODE,DSL.val("-"),
                Tables.PR_REVAMP_CODES.PR_DESCRIPTION
            ).as("DESCRIPTION"),
            Tables.PR_REVAMPS.PR_REVAMP_DATE,
            Tables.PR_REVAMPS.PR_KEY)
        .from(Tables.PR_REVAMP_CODES,Tables.PR_REVAMPS)
        .where(Tables.PR_REVAMPS.PR_REVAMP_CODE.equal(Tables.PR_REVAMP_CODES.PR_CODE))
        .and(Tables.PR_REVAMPS.PR_PROP_REF_NO.equal(refNo))
        .fetchInto(PrRevamps.class);
    
    return list;
}
  

и мне нужно отобразить код обновления и описание в одной строке в сетке vaadin.
т.е. «A-Marshall»

Это приведенный ниже код сетки:

 private void populateRevampGrid() {
    Object ref = serv.getAttribute("ref");
    String propRef = "";
    
    if(ref != null) {
        propRef = (String)ref;
        
        List<PrRevamps> list = getService().fetchRevampHistory(propRef);
        
        if(!list.isEmpty()) {
            revampGrid.setContainerDataSource(new BeanItemContainer<>(list));
            //revampGrid.addColumn("prRevampCode").setHeaderCaption("REVAMP DESCRIPTION");
            revampGrid.removeColumn("prKey");
            revampGrid.removeColumn("prLeaseType");
            revampGrid.removeColumn("prPropRefNo");
            revampGrid.getColumn("prRevampDate").setHeaderCaption("REVAMP DATE");
            revampGrid.getColumn("prRevampCode").setHeaderCaption("REVAMP TYPE");
        } else {
            clearfields();
            Notification.show("list is empty",Type.ERROR_MESSAGE.WARNING_MESSAGE);
        }
    }
}
  

Комментарии:

1. Не имеет отношения к вашей проблеме, но: Postgres 9.1 больше не поддерживается , вам следует запланировать обновление как можно скорее.

2. Как мне отобразить объединенные поля (из запроса) в сетке vaadin @Лукас Эдер, это мой вопрос

Ответ №1:

Как я понимаю, у вас есть поле описания, которое имеет желаемое значение.

Если нет, вы можете добавить свойства, созданные из объекта на лету. Но для этого вам нужно будет использовать Container .

Полное описание можно найти в документации Vaadin https://vaadin.com/docs/v7/framework/datamodel/datamodel-container.html (см. раздел GeneratedPropertyContainer)