【发布时间】:2016-05-03 18:03:46
【问题描述】:
我有 2 张桌子: 货币和汇率
货币的主键被 Rate 中的 inputCurrency 和 outputCurrency 外键引用。
如何将这些映射到 cascadeALL?
我在 Rate(包含前键的表)中尝试过
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "INPUT_CURRENCY")
private Currency inputCurrency;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "OUTPUT_CURRENCY")
private Currency ouputCurrency;
但是,如果我从货币中删除一个项目,则会导致主键违规。我无法删除货币,因为它被输入货币或输出货币的汇率引用。
如果我想用 Currency 来注释汇率列表,我该怎么说 mappedBy = "inputCurrency" 和 "outputCurrency" ?
@OneToMany(cascade = CascadeType.ALL,mappedBy ="inputCurrency,outputCurrency")
List<Rate> rates;
【问题讨论】:
-
显然您不能将 mappedBy 与多个值一起使用,因为它没有任何意义。 "mappedBy" = "这个双向关系存储在哪里" ...而且不能存储在多个地方!