Liquibase пытается сгенерировать скрипт на Method-based поле Котлина

Здравствуйте. Есть сущность WorkType которая храниться в базе с полем forHr

@JmixEntity
@Table(name = "WP_WORK_TYPE")
@Entity(name = "wp_WorkType")
open class WorkType {

@Column(name = "ENTITY_TYPE")
var entityType: String? = null

val forHr: Boolean
    @DependsOnProperties(value = ["entityType"])
    @JmixProperty
    get() = entityType != null && entityType == "wp_HrRequest"

}

Здесь поле forHr не должно хранится в базе. то-есть это Method-based attribute.
Оно val и сеттера у него нет. У нас в проекте есть много таких полей только тип у них ссылочный и скрипты на них не генерятся (Что правильно). Но при создании такого атрибута с примитивным типом при генерации скриптов падает ошибка

liquibase.command.CommandExecutionException: java.lang.RuntimeException: Cannot map Java type to SQL/Liquibase type: boolean. of com.example.entity.WorkType#forHr

То есть как я понимаю liqubase все таки проходит по таким полям но почему-то ссылки пропускает. Если добавить аннотацию @Transient то это исправляет проблему, но все таки хочется чтоб и без нее обходилось. Возможно какая-то проблема в платформе?

И в дизайнере с этим полем что-то не то.
image

Так же по поводу дизайнера. Он такие поля как я понимаю не воспринимает

val rateMonth: BigDecimal
    @DependsOnProperties(value = ["rateYear"])
    @JmixProperty
    get() = if (rateYear == null) {
        BigDecimal.ZERO
    } else rateYear!!.divide(BigDecimal.valueOf(12), 2, RoundingMode.HALF_EVEN)

переводит в.

image

Заранее напишу, что такие методы были сгенерированы самим Котлином.
То есть сначала мы писали классы в cuba на java, и там были простые геттеры. Затем перешли на Котлин И большинство наших классов теперь написано на Котлине. При переходе на jmix происходят какие-то проблемы с билдом java и kotlin классов. Они по переменно не видят друг друга и один раз из 3х нормально билдятся. Поэтому мы решили полностью перейти на котлин. И те классы что у нас сейчас на java автоматическими средствами перевели на Котлин. Тот сгенерировал геетер методы таким вот образом. И теперь если мы будем их переписывать на такие-же геттеры как и в java до этого. придется много где редактировать код.

Добрый день, Ярослав

Спасибо за обратную связь.
Да, действительно дизайнер сущностей в Студии не умеет работать с подобными Kotlin val атрибутами. На текущий момент переписывание на вариант с функцией-геттером это единственный вариант добиться корректной поддержки сущностей в Студии.

Возвращаясь к проблеме с генерацией скриптов для поля forHr. Опытным путём определил, что ошибка генерации скриптов связана с non-nullable Boolean типом. Если в определении атрибута forHr заменить Boolean на Boolean? то генерация проходит нормально. С этим же очевидно связано странное отображение типа как boolean. в редакторе.

Создан тикет в YouTrack, где вы можете отслеживать прогресс.