如何映射外键不是另一个表的PK的GORM关联?
我有以下架构:
CREATE TABLE `supplier` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`partner_id` int(11) NOT NULL,
`supplier_id` int(11) NOT NULL
PRIMARY KEY (`id`)
)
CREATE TABLE `ad` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`partner_id` int(11) NOT NULL,
`supplier_id` int(11) NOT NULL,
`ad_id` varchar(30) NOT NULL,
`ad_details` text NOT NULL
PRIMARY KEY (`id`)
)
FK关系在
ad.supplier_id
和supplier.supplier_id
(不是 supplier.id
)之间。编辑:下面@tim_yates的答案似乎部分起作用。
由于
supplier.supplier_id
不是supplier
表的PK,因此可以复制supplier.supplier_id
。实际上,
supplier
表的键是元组(supplier.supplier_id
,supplier.partner_id
)。如何建模此约束?
最佳答案
This similar question似乎表明您应该能够添加(使用advanced Gorm Mapping):
class Ad {
Partner partner
Supplier supplier
String details
static mapping = {
supplier column:'supplier_id'
details type:"text"
}
}
虽然我还没有测试过...
关于database - Grails GORM映射FK而不是另一个表的PK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8480701/