列表元素标记从XML到注释的映射

时间:2013-10-10 13:43:50

标签: java hibernate hibernate-mapping

我需要在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;
}    

但是如何迁移元素标记,为集合的元素定义自定义类型?

1 个答案:

答案 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对象注释为实体。