Ошибка при использовании @ElementCollection: org.hibernate.MappingException: не удалось определить тип для: java.util.Set, в таблице: для столбцов - PullRequest
0 голосов
/ 30 января 2019

У меня есть две таблицы NewsToolSearchCriteria и NewsToolSearchCriteria_NewsSource_Relation.newsToolSearchCriteriaId - это ссылки внешнего ключа на NewsToolSearchCriteria (entityID) Я хочу увидеть набор элементов из второй таблицы внутри первой.

Пытаясь настроить его таким образом:

@ElementCollection
@CollectionTable(name = "NewsToolSearchCriteria_NewsSource_Relation", joinColumns = @JoinColumn(name = "newsToolSearchCriteriaId"))
@Column(name = "newsSourceCode")
private Set<String> newsSources;

public Set<String> getNewsSources() {
    return newsSources;
}

public void setNewsSources(Set<String> newsSources) {
    this.newsSources = newsSources;
}

Но продолжайте получать сообщение об ошибке:

Вложенное исключение - org.hibernate.MappingException: Не удалось определить тип для: java.util.Set, для таблицы: dbo.NewsToolSearchCriteria, для столбцов: [org.hibernate..mapping.Column (newsSources)]

Я уже пытался использовать @Column(name = "newsSourceCode", columnDefinition = "NVARCHAR(30)") и @ElementCollection(targetClass = String.class)

Я уже видел другие подобные вопросы, но это не тот случай, когдаЯ использовал две сущности, и это можно решить, используя @OneToMany.

Есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 31 января 2019

Вы просто должны добавить аннотации к получателю вместо параметра класса.

Я не нашел место, где это сказано, но они используют его в документации , и это работает для меня.

...