Попробовали этот замечательный компонент при работе с полями типа M:N. Взяли его в оборот однако тут же возник следующий вопрос, можно ли его использовать для enum’ов? Т.е. есть enum и требуется поддержать выбор одновременно нескольких значений из enum’а. Платформа поддержи автоматическое добавление\удаление данных из аналогичной таблицы _LINK или нет? Как определить такое поле если платформа поддерживает такую работу?
ValuesPicker
поддерживает работу с enum. В документации об этом есть
Так вроде бы все нормально работает:
@Column(name = "ENUM")
private var enums: String? = null
fun getEnums(): List<TestEnum> {
return enums?.split(", ").orEmpty().mapNotNull { TestEnum.fromId(it) }
}
fun setEnums(enums: List<TestEnum>) {
this.enums = enums.joinToString { it.id }
}
<valuesPicker id="enumsField" property="enums">
<actions>
<action id="select" type="values_select">
<properties>
<property name="enumClass" value="com.company.jmix.test.entity.TestEnum"/>
</properties>
</action>
<action id="clear" type="value_clear"/>
</actions>
</valuesPicker>
Сохранить в string это всё понятно. Надо сохранить в БД, так же как это делается для entity, когда две таблицы связаны M:N и такая связь реализуется в БД через таблицу связей, которая имеет постфикс _LINK.