0

我需要从XML迁移到Hibernate 4.1.0 上的注释映射。我找不到这个 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;
}    

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

4

1 回答 1

1

您不能在您的情况下使用 @manyToMany 注释,因为您的 Serie 对象并不是真正的休眠实体,它只是序列化为 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 对象注释为实体。

于 2013-10-10T15:15:26.300 回答