Здравствуйте. Есть сущность 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
то это исправляет проблему, но все таки хочется чтоб и без нее обходилось. Возможно какая-то проблема в платформе?
И в дизайнере с этим полем что-то не то.
Так же по поводу дизайнера. Он такие поля как я понимаю не воспринимает
val rateMonth: BigDecimal
@DependsOnProperties(value = ["rateYear"])
@JmixProperty
get() = if (rateYear == null) {
BigDecimal.ZERO
} else rateYear!!.divide(BigDecimal.valueOf(12), 2, RoundingMode.HALF_EVEN)
переводит в.