我需要在Hibernate 4.1.0上从 XML 迁移到 Annotation 映射。我无法找到和等效的XML映射属性。
<list name="series" lazy="false">
<key column="query_id"/>
<list-index column="position"/>
<element column="xml_def" type="xml"/>
</list>
这是我开始写的注释映射:
@LazyCollection(LazyCollectionOption.FALSE)
@ManyToMany
@OrderColumn(name = "position")
@JoinColumn(name = "query_id")
public List<Serie> getSeries() {
return series;
}
但是如何迁移元素标记,为集合的元素定义自定义类型?
答案 0 :(得分:1)
在你的情况下你不能使用@manyToMany注释因为你的Serie对象实际上不是一个hibernate实体,它只是序列化为XML。试试这个:
@LazyCollection(LazyCollectionOption.FALSE)
@OrderColumn(name = "position")
@JoinTable(name = "yourTable", joinColumns = @JoinColumn(name = "query_id"))
@Type(type = "xml")
@Column(name = "xml_def")
@ElementCollection(targetClass = Serie.class)
@Override
public List<Serie> getSeries() {
return series;
}
使用此表单,您无需将Serie对象注释为实体。