Коллекция Enum в Entity

Здравствуйте!

Подскажите, пожалуйста, можно ли в Сущности указать поле, как коллекцию Enum’ов ?

В обычном JPA это делается как-то так:

    @ElementCollection(targetClass = SectionEnum.class)
    @CollectionTable(name = "USER_GROUP_SECTIONS", joinColumns = @JoinColumn(name = "USER_GROUP_ID"))
    @Enumerated(EnumType.STRING)
    @Column(name = "SECTION")
    private Set<SectionEnum> sections;

Можно ли что-то подобное сделать в Jmix, без создания ещё одной сущности?

По документации аннотация ElementCollection не поддерживается.

Скорее всего вам придется сделать что-то типа такого

@Lob
@Column(name = "SECTIONS")
private String sections;

public Set<SectionEnum> getSections() { 
    return sections == null ? null : sections.split(",").stream().map(SectionEnum::fromId);
}

public void setSections(Set<SectionEnum> sections) { 
    this.sections = sections == null ? null : sections.stream().map(SectionEnum::getId).collect(Collectors.joining(","));
}
2 симпатии

Ярослав, спасибо!
Пропустил момент с ElementCollection в документации.
Вариант хранения списка в одном поле тоже подойдёт!

вот есть пример
https://demo.jmix.io/sampler/#main/0/sample?id=combobox-simple