pchursin
(Pavel Che)
1
Здравствуйте!
Подскажите, пожалуйста, можно ли в Сущности указать поле, как коллекцию 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, без создания ещё одной сущности?
yarik1706
(Ярослав Горожанкин)
2
По документации аннотация 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 лайка
pchursin
(Pavel Che)
3
Ярослав, спасибо!
Пропустил момент с ElementCollection в документации.
Вариант хранения списка в одном поле тоже подойдёт!
ym76
(Eugene Lunin)
4