Отображение custom полей в таблице на Browse экране

Добрый день.
Предположим я к сгенеренной JPA сущности добавил кастомный метод, который опирается на текущее состояние объекта и возвращает некое значение.
image

Какие у меня есть варианты отображения этого значения в таблице на Browse экране?
image
Есть ли возможность просто указать какую то информацию при описании колонки?

В документации вижу возможность Генерации колонок .Просто пытаюсь понять, есть ли более компактный способ.
https://docs.jmix.ru/jmix/ui/vcl/components/table.html#table-column-generation
image

Аннотация JmixProperty вам в помощь.
Не забудьте добавить аннотацию DependsOnProperties

В документации есть пример:

@JmixProperty
@DependsOnProperties({"firstName", "lastName"})
public String getFullName() {
    return this.firstName + " " + this.lastName;
}
1 симпатия

:fire: :fire: :fire:
Огонь! Спасибо!

Может подскажите как можно реализовать вот что:

У сущности Card есть список связных сущностей Versions - композиция. (Card содержит несколько Versions)
image

При выводе таблицы Card на Browse экране я хочу в поле показать какие то атрибуты одной конкретной Version. (ту которая самая свежая по дате создания)

Я вижу следующие варианты:

  1. Добавить метод с JmixProperty в котором сортировать список Versions и возвращать тот что нужен.
  2. Добавить в Card поле LAST_VERSION_ID и по честному там держать ссылку на актуалдьную Version.

И тут вопрос просто для понимания: есть ли еще какие либо варианты?
Может как то можно запрашивать последнюю Version через JPQL, fetch plans, loaders… итд.

Оба варианта в принципе рабочие. Тут все зависит от того как вам удобнее и на сколько большие списки будут в versions. Если не большие и для базы не будет проблемой их грузить то можно использовать JmixProperty, если большие то хранить LAST_VERSION_ID, еще как вариант можно рассмотреть:

  1. Создание DBView чтобы каждый раз при сохранении Card не нужно было обновлять LAST_VERSION_ID, но тут надо будет переопределять все действия таблицы чтоб они работали с основной сущностью. (Для данного случая не думаю что это хороший вариант, но имеет место быть)
  2. Самое логичное как по мне это. В самом browse в postLoadEvent добавить загрузку последних Versions по всем загруженным Card и использовать columnGenerator (Это в случае если последние Versions нужно только показывать в экране и больше они нигде не используются)
1 симпатия

но тут надо будет переопределять все действия таблицы чтоб они работали с основной сущностью

А можете подсказать, как переопределить действия?

Подписываться на ActionPerformedEvent каждого действия.

1 симпатия