我遇到了问题并尝试了很多方法来解决它。
问题很简单,我如何同时使用商品ID和金额作为主键?
因为这会使物品成为一个小小的斑点。如果我使用@MapsId它会给出完全相同的东西。
@Entity
public class C_Drop extends LightEntity implements Serializable {
@Id
@ManyToOne
private C_Item item;
@Id
private double amount;
}
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class C_Drops extends LightEntity implements Serializable {
@Id
double id;
@OneToMany
private List<C_Drop> drops;
}
答案 0 :(得分:1)
我自己没有这样做,但你可以使用Composite Primary Key和双列映射的组合。 e.g:
@Entity
@IdClass(C_DropPK.class)
public class C_Drop extends LightEntity {
@Id
private double amount;
@Id
@Column(name = "ITEM_ID")
private double itemId;
@ManyToOne
@JoinColumn(name="ITEM_ID")
private C_Item item;
}
然后:
public class C_DropPK {
private double itemId;
private double amount;
}