1
我在项目中的实体之间的关系有问题,其中所有实体都有由3个字段组成的主键;复合键映射JPA +休眠
Product(**ck_del, cod_empresa, codigo**, description, cod_group, cod_tax);
Group(**ck_del, cod_empresa, codigo**, description);
Tax(**ck_del, cod_empresa, codigo**, description);
//Mapping in the entity PRODUCT
@ManyToOne
@JoinColumn(name="COD_GROUP" , referencedColumnName="CODIGO")
private Group group;
@ManyToOne
@JoinColumn(name="COD_TAX" , referencedColumnName="CODIGO")
private Tax tax;
当我尝试实体实体只有每个实体的域代码的其他两个实体映射返回错误:
referencedColumnNames(CODIGO) of models.Product.group referencing models.Group not mapped to a single property
大概是因为初级组密钥是复合,有任何方式来做这种关系,而不必更改实体的主键?
的问题是,我们的关系只能通过查询进行COD_GROUP + COD_EMPRESA 的CK_DEL属性是常见到所有实体,并且对于每个表的每个记录 –
@BrunoC都是唯一的。所以如果它对所有实体都是通用的,那么你为什么要在主键中使用? –
需要ck_del列作为维护注册表完整性的关键 –