带有转换器的Hibernate xml @ElementCollection

时间:2018-11-05 00:01:42

标签: java xml hibernate jpa

我已经使用注释

@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>

此外,由于休眠模式使用 converted :: 前缀将转换器应用于属性映射,因此我尝试使用:

<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,因为它没有休眠映射提供的几种功能。

0 个答案:

没有答案