0

hibernate4中,注解@MapKey的targetElement属性被什么替换了?

@ElementCollection
@MapKey(targetElement = ProductAttribute.class)
@LazyCollection(LazyCollectionOption.TRUE)
@Cascade(value = { CascadeType.DELETE })
public Map<ProductAttribute, String> getProductAttributeMapStore() {
    return productAttributeMapStore;
}

现在,我把我项目的hibernate.jar从hibernate3升级到hibernate4.1,intellJ alert targetElement就可以找到了。

4

1 回答 1

0

文档所述,org.hibernate.annotations.Mapkey 注释已被弃用,取而代之的是javax.persistence.MapKeyColumn

根据 API 文档,不推荐使用属性targetElement,因为:

仅当集合不使用泛型时才有用

在这种特定情况下,使用 targetElement 是重复的,因为映射键的类型已经通过使用泛型给出:

Map<ProductAttribute, String>
于 2013-06-02T03:52:15.957 回答