Hibernate 使用多个外键将一个映射到多个

Hibernate 使用多个外键将一个映射到多个,hibernate,hibernate-mapping,Hibernate,Hibernate Mapping,我拥有以下实体: @Entity @Table(name = "ITEM_WEIGHTS", uniqueConstraints = {}) public class ItemWeight { private ItemWeightId id; @Column(name = "PERCENTAGE", unique = false, nullable = false, insertable = false, updatable = false, precision = 10, scale =

我拥有以下实体:

@Entity
@Table(name = "ITEM_WEIGHTS", uniqueConstraints = {})
public class ItemWeight {

private ItemWeightId id;

@Column(name = "PERCENTAGE", unique = false, nullable = false, insertable = false, updatable = false, precision = 10, scale = 2)
private float percentage;

public ItemWeight() {
}

@EmbeddedId
@AttributeOverrides({ @AttributeOverride(name = "itemId", column = @Column(name = "ITEM_ID", unique = false, nullable = false, insertable = false, updatable = false, precision = 10, scale = 0)) })
public ItemWeightId getId() {
    return id;
}

// Setter and Getters
}

@实体
@表(name=“STORE”)
公共类项扩展存储{
私有列表权重=新建LinkedList();
公共项目(){
}
@OneToMany(cascade={CascadeType.ALL},fetch=FetchType.EAGER,mappedBy=“id.itemId”)
公共列表getItemWeights(){
返回权重;
}
公共void setItemWeights(列表权重){
这是重量=重量;
}
}

我的“ITEM_WEIGHTS”表由3个主键组成:哪个SKIN_ID是其中之一

我希望进行映射,以便最终每个“Item”实体将包含一个在STORE.Item\u ID=Item\u WEIGHTS.Item\u ID之间关联的所有“ItemWeights”的列表


我该怎么做???

ItemWeightId
中不应该有一个基本的
itemId
字段。应该有多个项目关联。我的建议是:停止使用复合主键,而是使用单列自动生成的PK。一切都将变得更加简单、干净和高效。谢谢,但我的联接表必须有3个主键。这是我的EmbeddedId。如果要保留此设计,请确保在ItemWeightId类中有多个Item字段,而不是基本ItemId。我的观点是,这种设计很难看,应该改用单列自动生成的PK。它将更清洁、更容易、更高效。
@Entity
@Table(name = "STORE")
public class Item extends Store {

private List<ItemWeight> weights = new LinkedList<ItemWeight>();    

public Item() {

}

@OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER, mappedBy = "id.itemId")  
public List<ItemWeight> getItemWeights() {
    return weights;
}

public void setItemWeights(List<ItemWeight> weights) {
    this.weights = weights;
}