【问题标题】:List Element Tag mapping from XML to Annotation从 XML 到注释的列表元素标记映射
【发布时间】:2013-10-10 13:43:50
【问题描述】:

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

但是我怎样才能迁移 element 标签,为集合的元素定义一个自定义类型呢?

【问题讨论】:

    标签: java hibernate hibernate-mapping


    【解决方案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 对象注释为实体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-12
      • 2012-10-11
      • 2015-08-16
      • 2015-08-21
      • 1970-01-01
      • 2016-12-05
      相关资源
      最近更新 更多