我遇到oracle / jpa映射中的约束问题。 我有这4张桌子
SucursalSolicitanteFornecimento(
Sucursal_ID (NUMBER) PK
Sucursal_Name(VARCHAR)
Sucursal_UF
);
ParamSolicitante(
paramID (NUMBER)
paramName(Varchar)
);
ConfiguracaoParametroSolicitante(
paramConfigID (NUMBER) PK,
paramID FK (from ParamSolicitante),
requestID (From SucursalSolicitanteFornecimento)
);
ConfiguracaoParametroSolicitanteSucursal(
ID (NUMBER) PK,
paramConfigID FK from ConfiguracaoParametroSolicitante,
SucursalSolicitanteFornecimento_ID
SucursalSolicitanteFornecimento_UF - Both From SucursalSolicitanteFornecimento
);
我的问题是当我尝试在ConfiguracaoParametroSolicitanteSucursal中插入一个新值时,由于FK,我不能拥有2个不同的ParamConfigID和相同的SucursalSolicitanteFornecimento_UF和相同的SucursalSolicitanteFornecimento_ID。 但现在这正是我所需要的,在同一状态下该SucursalSolicitante的多个参数。
我的Java类以这种方式映射:
public class ConfiguracaoParametroSolicitanteSucursal{
@Id
@GeneratedValue()
private Integer codigoConfigParamSolctteSuc;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumns( { @JoinColumn(name = "SUCURSAL_ID", referencedColumnName = "SUCURSAL_ID", nullable = false),
@JoinColumn(name = "SUCURSAL_UF", referencedColumnName = "SUCURSAL_UF", nullable = false) })
private SucursalSolicitanteFornecimento sucursalParametro;
@JoinColumn(name = "paramConfigID", referencedColumnName = "paramConfigID", nullable = false)
@ManyToOne(fetch = FetchType.LAZY)
private ConfiguracaoParametroSolicitante configuracaoParametroSolicitante;
}
我能做些什么来达到我的需要?我想知道是否必须将@OneToOne列更改为@ManyToOne并删除数据库中的约束。