Hibernate xml @ElementCollection с конвертером - PullRequest
0 голосов
/ 05 ноября 2018

У меня было это с аннотациями

@ElementCollection
@CollectionTable(name = "story_tag", joinColumns = @JoinColumn(name = "story_id"))
@Column(name = "tag")
private Set<Tag> tags;

Где Tag - это перечисление, и каждое значение хранится как целочисленный тип в базе данных с использованием преобразователя.

@Converter(autoApply = true)
public class TagConverter implements AttributeConverter<Tag, Integer> {
   //convertToDatabaseColumn and convertToEntityAttribute properly implemented
}

Как уже упоминалось, это работает. Но я нахожусь в процессе извлечения аннотаций из моих моделей. Используя hibernate xml (не jpa xml, это можно сделать с помощью jpa легко). Однако я не нашел решения. Вот как я пытался:

<set name="tags" table="story_tag">
  <key column="story_id"></key>
  <element column="tag" type="com.test.TagConverter"></element>
</set>

Кроме того, поскольку hibernate использует префикс convert :: для применения конвертеров для сопоставления свойств, я попытался:

<set name="tags" table="story_tag">
  <key column="story_id"></key>
  <element column="tag" type="converted::com.test.TagConverter"></element>
</set>

Ни один из них не работает, оба броска

MappingException: Could not determine type for: com.test.TagConverter

Есть идеи? Я не использую jpa xml, потому что у него нет нескольких функций, которые обеспечивают отображения в спящем режиме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...