当一个引用的pk引用另一个引用的pk时,如何映射GORM中的实体
||
当一个表的主键也是另一个表的外键时,在GORM中映射两个实体的最佳方法是什么。例如:
这是一张桌子:
CREATE TABLE `table_a` (
`a_id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`a_id`)
)
下表引用了该表“ a_id”的pk:
CREATE TABLE `table_b` (
`b_id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`b_id`),
KEY `b_id_fk` (`b_id`),
CONSTRAINT `b_id_fk` FOREIGN KEY (`b_id`) REFERENCES `table_a\' (`a_id`)
)
如何在Grails / GORM中映射以上两个实体?由于GORM会抛出异常“实体映射中的重复列”,因此以下代码显然不起作用。
class TableB {
TableA tableA
static belongsTo = [TableA]
static mapping = {
id column:\"b_id\"
version false
tableA column:\"b_id\"
}
static constraints = {
tableA unique: true
}
}
注意:我使用的是grails 1.3.7,但如果此问题是最近已解决的问题,则可以切换到较新的版本。请告诉我。
没有找到相关结果
已邀请:
1 个回复
纤洞需匪
映射为
的子类。检查Grails指南中的继承策略。 因此,您将拥有:
这种方法的问题是创建了
对象后就无法创建
对象。 Hibernate的工作方式是,在创建新的
实例时,会在
中创建一条记录。创建新的“ 3”实例时,将同时创建“ 9”中的记录和“ 12”中的记录。 OTOH,除了这样的类层次结构的映射之外,我没有想到该模式的正当理由。