我想映射一个Map<Long, List<ItemAttribute>>
内@Entity
类其中ItemAttribute本身是@Entity
单独定义。我想映射一个地图<Long,List <POJO>>通过JPA
这里是我使用的映射代码:
@Entity
@Table(name = "ITEM_ATTRIBUTE_GROUP")
public class ItemAttributeGroup implements Cloneable, Serializable
{
@ElementCollection
@MapKeyColumn(name="groupId")
@JoinTable(name = "ATTRIBUTES_IN_GROUP", joinColumns = @JoinColumn(name = "groupId"),
inverseJoinColumns = @JoinColumn(name = "ID"))
private Map<Long, List<ItemAttribute>> attributes = new HashMap<Long, List<ItemAttribute>>();
//getters and setters........
}
ItemAttribute是下面提到的一个单独的类:
@Entity
@Table(name = "ITEM_ATTRIBUTE")
public class ItemAttribute implements Cloneable, Serializable {
private static final long serialVersionUID = -8017036630979138942L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private Long id;
@ElementCollection // this is a collection of primitives
@JoinTable(name="ATTRIBUTE_VALUE_RANGE", [email protected](name="ID"))
@MapKeyColumn (name="RANGE_ID")// column name for map "key"
@Column(name="VALUE")// column name for map "value"
private Map<String, String> attributeValueRange = new HashMap<String, String>();
@ElementCollection // this is a collection of primitives
@JoinTable(name="QUALIFIER_VALUE_RANGE", [email protected](name="ID"))
@MapKeyColumn (name="RANGE_ID")// column name for map "key"
@Column(name="VALUE")// column name for map "value"
private Map<String, String> qualifierValueRange = new HashMap<String, String>();
public Map<String, String> getAttributeValueRange() {
return attributeValueRange;
}
public void setAttributeValueRange(Map<String, String> attributeValueRange) {
this.attributeValueRange = attributeValueRange;
}
public Map<String, String> getQualifierValueRange() {
return qualifierValueRange;
}
public void setQualifierValueRange(Map<String, String> qualifierValueRange) {
this.qualifierValueRange = qualifierValueRange;
}
}
而且问题是在我的代码,我无法某处鉴别。 我收到此错误
针对未映射的类使用@ JoinTable.inverseJoinColumns的: ItemAttributeGroup.attributes [java.util.List中]
问题是? – home 2013-02-25 14:02:23
对不起。我做了编辑。我也应该使用@Column注释,但是我无法确定如何在这种情况下映射Map的值字段。 – 2013-02-25 14:09:29