У меня было это с аннотациями
@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, потому что у него нет нескольких функций, которые обеспечивают отображения в спящем режиме.